Nel mio applicativo per la query parametrica uso questo sistema:
la form di ricerca è chiamata, per esempio, "ricerca" e nei criteri di ricerca della query ho inserito, per i campi testo
Like IIf(IsNull([Forms]![ricerca]![text1]);"*";[Forms]![ricerca]![text1])
per un testo, se text1 è vuoto li ricerca tutti, idem per un campo numerico
per i campi data
IIf(IsNull([Forms]![ricerca]![scad_da]);#01/01/999#;[Forms]![ricerca]![scad_da]) And IIf(IsNull([Forms]![ricerca]![scad_a]);#31/12/2222#;[Forms]![ricerca]![scad_a])
per un range di date, se i campi data_da e data_a sono vuoti prende tutti i valori.
L'importante che i campi dei record (oggetto di ricerca) siano tutti compilati altrimenti devi modificare la stringa di criterio in modo che prenda anche i valori "null"