Siccome stimo che le Date Cardine del Criterio non possono essere FISSE come le hai messe tu(che immagino sia solo un Test), per chi normalmente scrive applicazioni sviluppa consentendo di Parametrizzare questi criteri, quindi scrive Query che pescano i Valori all'esterno, rendendoli gestibili anche a selezioni.
Siccome questo è il modo NORMALE, pensavo avessi fatto come di Norma si fa, mentre ora comprendo che sei in fase sperimentale, e che spero poi tu vada a modificare, ecco quando lo farai, a seconda di che strumento userai per passare i Parametri, dovrai usare un opportuno metodo di Correzione della sintassi.
Ora tornando alle Date, c'è da capire come hai inserito la Data nel Database, perchè purtroppo i meno esperti usano Now() che è comodo ma spesso induce ad errori...!
Ti faccio un esempio...!
Se inserisci la data con NOW(), aggiungi al valore inserito anche la connotazione [hh:mm:ss] di conseguenza otterrai un valore con i decimali.
?cdbl(Now())
42639,4665393519
?cdbl(Date())
42639
?clng(Now())
42639
?clng(Date())
42639
Come vedi avendo i Decimali il valore è Superiore allo stesso Valore restituito prendendo la parte [gg/mm/aaaa]...!
Quindi in particolare sul limite esterno che usi:
(Percorsi.Data)<=#10/31/2016#)
il rischio è di aver delle Date che non vengono prese dal criterio...!
Quindi, verifica bene come stai lavorando, ed eventualmente dovrai modificare il predicato così
Fix((Percorsi.Data))<=#10/31/2016# ....
Puoi leggere questo Articolo:
**