OsvaldoLaviosa ha scritto:
CarlettoFed ha scritto:
creare una routine dove recuperare gli anni selezionati per l'impostazione del filtro della query su cui è basato il report
Credo che questo sia un punto focale per te. Considera che il filtro dovrà avere una sintassi del tipo
Valore1 OR Valore2 OR Valore3
e per ottenerla devi "ciclare" qualcosa. Questo risultato può restituirtelo solo una routine in VBA.
L asintassi del "Filtro" che proponi è pericolosa per 2 motivi:
1° Se scrivi così in realtà uno può facilmente travisare alla sintassi errata di questo tipo:
"NomeCampo=Valore1 OR Valore2 Or Valore3"
2° Ipotizzando invece tu volessi suggerrire la sintassi giusta:
"NomeCampo=Valore1 OR "NomeCampo=Valore2 Or "NomeCampo=Valore3"
sarebbe poco ottimizzata per i cicli di esecuzione nell'applicazione in OR dei criteri soprattutto se il campo NON è indicizzato implica l'esecuzione di un TableScan ad ogni OR..., visibile solo con l'analisi dei piani di esecuzione delle query.
Tuttavia nei casi in cui serve comporre un elenco si preferisce utilizzare una struttura differente, non migliora nulla in prestazioni ma rende la vita facile nella creazione della sintassi ed è preferibile proprio in questi casi in cui una MultiSelezione può rendere conveniente usare la Clausola IN
"NomeCampo IN(Valore1, Valore2, Valore3)"