Se non vedi il banner pubblicitario disabilita il blocco nel browser, aiuterai questo sito a rimanere online, grazie!

Autore Access 2007...c'è qualcuno "ferrato" in materia?  (Letto 1687 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Markino

  • Uploader Attivo
  • **
  • Post: 304
  • Karma: 0
Access 2007...c'è qualcuno "ferrato" in materia?
« il: 12 Feb 2015, 11:56:08 »
Salve gente, ho un problemino (per me un problemone) con access 2007. Ho creato un database per le gestione dei soci della nostra scuola di volo ma nell'anagrafica, quando un campo rimane vuoto per mancanza di dati, il database restituisce un dato non corretto, tipo "ok" o "scaduto" a seconda del campo.
C'è un modo per cui se un campo è vuoto il database restituisca "-" o qualcos'altro...

Se serve posso inviare il db, tanto ancora non ci sono dati personali inseriti ma solo dati fittizzi per prove.

Ciao, grazie.

Marco
"Se desideri ottenere ciò che desideri
hai bisogno di liberarti dal bisogno"

Offline Ripley

  • Ministro degli Esteri
  • AssistantAdmin
  • ****
  • Post: 7178
  • Karma: 20
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #1 il: 12 Feb 2015, 19:05:51 »
Ma i dati come li estrai? C'è un form o un modulo VB?
Cougar 00736
OrbiterAddons/Vimeo

Offline Markino

  • Uploader Attivo
  • **
  • Post: 304
  • Karma: 0
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #2 il: 12 Feb 2015, 21:28:08 »
Ciao Ripley, c'è una maschera che mi riporta i dati dei vari soci. Ora, per ogni socio non è detto che tutti i campi siano necessariamente riempiti con un dato, che nella fattispecie è una data. Alcuni resteranno vuoti, ma anche quando sono vuoti viene riportato, a causa delle formule usate per i calcoli con le date, "ok" oppure "scaduto".
Io vorrei che quandoi non c'è una data inserita quel campo riporti un valore tipo "-".
Non so se sono riuscito a spiegarmi... :blush2:

Ciao!

Marco
"Se desideri ottenere ciò che desideri
hai bisogno di liberarti dal bisogno"

Offline Ripley

  • Ministro degli Esteri
  • AssistantAdmin
  • ****
  • Post: 7178
  • Karma: 20
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #3 il: 13 Feb 2015, 11:30:31 »
Ahimè di Access nello specifico capisco poco o niente.
Però sembra che tu debba inserire un controllo sulla validità del dato...qualcosa come

Codice: [Seleziona]
if data_iscrizione <> "" (cioè se il campo data_iscrizione contiene qualcosa)
   fai i tuoi calcoli
else
   data_iscrizione = "--/--/----"
endif

Dovresti vedere cos'è che genera la stringa "scaduto" per capire dove fare la modifica.
Cougar 00736
OrbiterAddons/Vimeo

Offline Drust

  • Licenza ITAF
  • *
  • Post: 609
  • Karma: 2
    • proteggiamo l'ambiente
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #4 il: 14 Feb 2015, 16:43:32 »
Se mi mandi il file posso provare a risolverti il problema. ..ma il successo non è assicurato perché non uso access regolarmente :-)

Se non vedi il banner pubblicitario disabilita il blocco nel browser, aiuterai questo sito a rimanere online, grazie!

Offline Markino

  • Uploader Attivo
  • **
  • Post: 304
  • Karma: 0
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #5 il: 14 Feb 2015, 18:34:46 »
Salve ragazzi, grazie per le risposte. Allora, quelle che seguono sono le formule pe il controllo delle date, prendendo come esempio la scadenza dell'abilitazione a istruttore vds:

Scadenza ab Istruttore (dalla tabella:"Anagrafica")
data: Date()
ConfrontoScadenzaIs truttore: [data]-[Scadenza ab Istruttore]
ControlloScadenzaIs truttore: IIf([ConfrontoScadenzaIstruttore]>365;"Scaduto";"OK")

Al momento nel campo della tabella anagrafica "scadenza ab istruttore" se c'è una data, il campo di cotrollo, in un altra maschera, riporta correttamente se l'abilitazione istruttore è ancora "ok" o è "scaduta"; purtroppo se il campo rimane vuoto, nel campo di controllo viene comunque riportato "ok".
Io vorrei che fosse invece riportato "-", ovvero il campo non è stato lasciato vuoto per dimenticanza ma proprio non ci sono dati da inserire.

@Drust: grazie mille! Ti mando il file quanto prima; spero con quanto sopra di aver chiarito un pò quello che vorrei fare. Mancherebbe solo la soluzione al campo vuoto, poi il db per me andrebbe bene così...

Grazie ancora a tutti. Ciao.

Marco

"Se desideri ottenere ciò che desideri
hai bisogno di liberarti dal bisogno"

Offline Markino

  • Uploader Attivo
  • **
  • Post: 304
  • Karma: 0
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #6 il: 19 Feb 2015, 21:18:53 »
Salve, qualcuno ha avuto qualche idea in merito al mio quesito su access?

@drust: mandata mail, mi puoi far sapere se ti è arrivata? Thanks!

Ciao!

Marco
« Ultima modifica: 19 Feb 2015, 21:21:17 da Markino »
"Se desideri ottenere ciò che desideri
hai bisogno di liberarti dal bisogno"

Offline Ripley

  • Ministro degli Esteri
  • AssistantAdmin
  • ****
  • Post: 7178
  • Karma: 20
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #7 il: 19 Feb 2015, 22:14:06 »
Devi aggiungere una IF "a monte", cioè:

Codice: [Seleziona]
...
IF Scadenza ab Istruttore <> ""
     ConfrontoScadenzaIstruttore=[data]-[Scadenza ab Istruttore]
     IIf([ConfrontoScadenzaIstruttore]>365;"Scaduto";"OK")
ELSE
     ControlloScadenzaIstruttore = "-"
ENDIF
...

Oppure

Codice: [Seleziona]
...
If IsDate(Scadenza ab Istruttore)
THEN
     ConfrontoScadenzaIstruttore=[data]-[Scadenza ab Istruttore]
     IIf([ConfrontoScadenzaIstruttore]>365;"Scaduto";"OK")
ELSE
     ControlloScadenzaIstruttore = "-"
ENDIF
...

Funzione IsDate (Visual Basic)
https://msdn.microsoft.com/it-it/library/00wf8zk9%28v=vs.90%29.aspx



Esempio "in Excel"  :haha:

A
B
C
1
  pippo    01/01/2014    =SE(B1<>"";SE(OGGI()-B1>365;"scaduto";"OK");"-")
2
  pluto    01/10/2014    =SE(B2<>"";SE(OGGI()-B2>365;"scaduto";"OK");"-")
3
  paperino    =SE(B3<>"";SE(OGGI()-B3>365;"scaduto";"OK");"-")


Naturalmente pippo è scaduto, pluto è OK, e paperino è "-".
Se cancelli la data in colonna B, il "SE" esterno fa uscire la formula con "-", altrimenti se il campo data contiene un valore, il controllo passa al "SE" interno, che valuta il da farsi.
« Ultima modifica: 20 Feb 2015, 12:00:43 da Ripley »
Cougar 00736
OrbiterAddons/Vimeo

Offline Markino

  • Uploader Attivo
  • **
  • Post: 304
  • Karma: 0
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #8 il: 21 Feb 2015, 16:45:18 »
Ciao Ripley, grazie per i suggerimenti. Purtroppo non riesco ad utilizzarli nel modo adeguato. Ho provato come nell'immagine sotto (rimossa) ma mi da sempre o errore di sintassi o l'operando è senza l'operatore (?) o altri messaggi di errore.... [scalata]

(Link immagine rimosso)

Ma dove e come vanno scritte quelle istruzioni? Non riesco a farle venire come hai scritto te, quando vado a capo mi salta alla riga successiva che è un'altra cosa (tabella)...

Grazie per l'aiuto e per la pazienza...purtropp o come allievo non sono il massimo... :blush2:

Ciao.

Marco
« Ultima modifica: 21 Apr 2015, 10:33:06 da Ripley »
"Se desideri ottenere ciò che desideri
hai bisogno di liberarti dal bisogno"

Offline Ripley

  • Ministro degli Esteri
  • AssistantAdmin
  • ****
  • Post: 7178
  • Karma: 20
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #9 il: 31 Mar 2015, 12:31:58 »
Sto risolvendo...



Le istruzioni vanno scritte esattamente nei campi della schermata che hai allegato schermata cancellata, solo che hai sbagliato sintassi.
L'istruzione IIF già racchiude in sè tutta la "vecchia" struttura IF-THEN-ELSE-ENDIF.

IIf(test_condizione;esegui_se_condizione_vera;esegui_se_condizione_falsa)


Quello che ho fatto è stato aggiungere un'altra IIF (esterna alla preesistente) per controllare che la data non fosse = "", cioè vuota, come dicevo nel thread, così la seconda IIF (più interna) fà il suo test solo se è TRUE la prima IIF. Se invece fosse FALSE, uscirebbe dalla sua ELSE, visualizzando cioè i due "--".

Per esempio, da così:
Codice: [Seleziona]
ControlloScadenzaAvanzato: IIf([ConfrontoScadenzaAvanzato]>365;"Scaduto";"OK")
A così:
Codice: [Seleziona]
ControlloScadenzaAvanzato: IIf([ConfrontoScadenzaAvanzato]<>"";IIf([ConfrontoScadenzaAvanzato]>365;"Scaduto";"OK");"--")
IIf([ConfrontoScadenzaAvanzato]<>"";IIf([ConfrontoScadenzaAvanzato]>365;"Scaduto";"OK");"--")

In più c'era un errore su un campo e non prendeva quello giusto...

Il file te l'ho mandato per PM.
« Ultima modifica: 02 Apr 2015, 23:56:49 da Ripley »
Cougar 00736
OrbiterAddons/Vimeo

Se non vedi il banner pubblicitario disabilita il blocco nel browser, aiuterai questo sito a rimanere online, grazie!

Offline Ripley

  • Ministro degli Esteri
  • AssistantAdmin
  • ****
  • Post: 7178
  • Karma: 20
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #10 il: 02 Apr 2015, 00:49:55 »
Markino, è saltata l'immagine in un tuo post poco più su.
« Ultima modifica: 02 Apr 2015, 00:50:32 da Ripley »
Cougar 00736
OrbiterAddons/Vimeo

Offline Markino

  • Uploader Attivo
  • **
  • Post: 304
  • Karma: 0
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #11 il: 02 Apr 2015, 12:55:48 »
Ciao Ripley, grazie. Hai un mp...

L'immagine è saltata perchè l'ho cancellata da photobucket  :blush2: ... per inserire quelle che ti ho inviato per mp...

A presto.

Marco
« Ultima modifica: 02 Apr 2015, 12:56:10 da Markino »
"Se desideri ottenere ciò che desideri
hai bisogno di liberarti dal bisogno"

Offline Markino

  • Uploader Attivo
  • **
  • Post: 304
  • Karma: 0
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #12 il: 21 Apr 2015, 08:32:53 »
Salve gente, allora la questione per lo scadenzario è stata brillantemente risolta dal poliedrico Ripley, a cui vanno i miei più sentiti ringraziamenti!  :dance1: :dance1: :good: :clapping: :clapping:

Ciao!

Marco
"Se desideri ottenere ciò che desideri
hai bisogno di liberarti dal bisogno"

Offline Ripley

  • Ministro degli Esteri
  • AssistantAdmin
  • ****
  • Post: 7178
  • Karma: 20
Re:Access 2007...c'è qualcuno "ferrato" in materia?
« Risposta #13 il: 21 Apr 2015, 10:34:27 »
È stato un piacere!
Cougar 00736
OrbiterAddons/Vimeo

Se non vedi il banner pubblicitario disabilita il blocco nel browser, aiuterai questo sito a rimanere online, grazie!

 


SimplePortal 2.3.7 © 2008-2024, SimplePortal