[MS Access] controllo valido se

maurivi53

Nuovo Utente
20 Nov 2018
16
0
1
Buongiorno a tutti, ho una tabella con i seguenti dati: data - ent1 - ent2 - usc1 - usc2 (entrata1-entrata2-uscita1-uscita2)

una maschera che inserisco la data, l'entrata1, l'entrata2, l'uscita1 e l'uscita2. nel controllo maschera in riga "valido se" inserisco nella seconda entrata: >ent1

inserisco nella prima uscita: >ent1 and >ent2

inserisco nella seconda uscita: iif([ent2]=0 and [usc1]=0;[usc2]>[ent1];[usc2])

oppure: IIf(IsNull([ent2]) And IsNull([usc1]);[usc2]>[ent1];[usc2])

se inserisco nella maschera: ent1=09:00 ent2=12:00 usc1 =13:00 usc2 =18:00 mi dà come risultato 8 ed è OK

se inserisco nella maschera: ent1=12:00 ent2=0 usc1=0 usc2=16 mi dà come risultato 4 ed è OK

se inserisco nella maschera: ent1=12:00 ent2=0 usc1=0 usc2=09:00 mi dà come risultato 3 ma non è giusto, dovrebbe dare errore

visto che nel controllo "valido se" ho inserito che se ent2 e usc1 sono =0 usc2 deve essere maggiore della ent1, così anche se il controllo lo inserisco nella query.

mi potete aiutare?

ringrazio anticipatamente.
 
controlli che io farei,

se ci sono 2 entrate devono esserci 2 uscite
e la prima uscita deve essere maggiore della prima entrata
e la prima uscita deve essere minore della seconda entrata
e la seconda uscita deve essere maggiore della seconda entrata

se c'é una sola entrata deve esserci una sola uscita
e l'uscita deve essere maggiore dell'entrata
 
Grazie Marino della risposta, in effetti per esempio la prima entrata è (es.08:00) la seconda entrata è (es. 12:00) la prima uscita è (es. 13:00) la seconda uscita è (es. 17:00) totale ore 8, altro esempio la prima entrata è (es. 12:00) la seconda entrata è (es. 00:00) la prima uscita è (es. 00:00) la seconda uscita è (es. 16:00) totale ore 4. Entrata primaria, entrata mensa, uscita mensa, uscita primaria.
Se non viene sfruttata la mensa, il controllo deve calcolare solo la prima entrata e la seconda uscita ma nel mio caso non funziona, perché se inserisco: prima entrata è (es. 12:00) la seconda entrata è (es. 00:00) la prima uscita è (es. 00:00) la seconda uscita è (es. 09:00) il totale ore è 3 ma è sbagliato, il controllo non funziona, forse è sbagliata la sequenza del controllo stesso. Mentre se inserisco prima entrata (es. 12:00) seconda entrata (es. 00:00) prima uscita (es. 00:00) seconda uscita (es. 17:00) totale ore 5 funziona. Ho letto la sintassi nell'help e mi sembra corretto.
Grazie ancora delle risposte.
 
La cosa credo sia impossibile controllarla tramite la proprietà Valido se , devi per forza ricorrere a Vba, che non è molto complicato.
 
Ultima modifica:
Ciao Carletto e grazie della risposta, ho immaginato che la cosa fosse impossibile, anche perchè avevo messo il codice uguale nella query ma non funzionava ugualmente. se ti è è possibile mi puoi dare una dritta per il codice in vba, non sono molto pratico, solo una dritta in modo che possa ragionarci su e cercare di risolvere l'inghippo. ti ringrazio in anticipo.
 
Grazie Carletto, lo studierò e ti saprò dire, grazie ancora. ps: mi permetterò di disturbarti ancora se qualcosa non capisco.
 

Discussioni simili