27/09/2024 - Philcattivocarattere ha scritto:
26/09/2024 - Lucky56 ha scritto:
capire dov'è l'errore.…
Errore 3464 = Tipo di dati non corrispondente a criteri
Chr$(34) è il doppioapice. Lo uso per racchiudere il valore della data nella where condition di DLookup. Il criterio sui campi data deve essere racchiuso tra cancelletti #,
"data_attivita = #" & Me!data_attivita & "#"
'oppure
"data_attivita = " & Chr$(35) & Me!data_attivita & Chr$(35)
ma attenzione al formato della data: se è GG/MM/AAAA il programma cercherà di convertirlo in MM/DD/YYYY. A volte andrà bene, a volte no, quindi non gli si deve dare la possibilità di commettere errori, passando già il valore giusto in formato MM/DD/YYYY.
Appunto quella sintassi è sostanzialmente errata… perchè la conversione in realtà lui la fa SEMPRE non solo a volte…, cosa fa si che a volte funzioni ed a volte no…?
Il Mese/Giorno… se il GG>12 non può fare l'inversione, allora lascia GG/MM altrimenti inverte…
01/02/2024 (1° Febbraio 2024 in IT, verrà converito in 2 Gennaio 2024)
ma
13/02/2024 non verrà convertito in nulla e rimarrà 13 Febbraio 2024
Per ovviare si modifica la funzione con un Format:
"data_attivita = #" & Format(Me!data_attivita,"mm/dd/yyyy") & "#"
oppure:
"data_attivita = " & clng(Me!data_attivita) ' se non ci sono hh:mm:ss
"data_attivita = " & str(cdbl(Me!data_attivita)) ' se il formato ha hh:mm:ss