[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.
 

marino51

Utente Attivo
28 Feb 2013
2.903
160
63
Lombardia
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
 

maurivi53

Nuovo Utente
20 Nov 2018
16
0
1
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.
 

CarlettoFed

Utente Attivo
17 Lug 2017
82
1
8
67
La cosa credo sia impossibile controllarla tramite la proprietà Valido se , devi per forza ricorrere a Vba, che non è molto complicato.
 
Ultima modifica:

maurivi53

Nuovo Utente
20 Nov 2018
16
0
1
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.
 

maurivi53

Nuovo Utente
20 Nov 2018
16
0
1
Grazie Carletto, lo studierò e ti saprò dire, grazie ancora. ps: mi permetterò di disturbarti ancora se qualcosa non capisco.