Newsgroup: it.comp.appl.access
Titolo: Variazione parametri query

Un saluto festoso a tutti.
Scopiazzando qui e la, e grazie ai vostri consigli, ho costruito una piccola
"applicazione" che mi consente di gestire la contabilità  della mia
attività. Funziona tutto dignitosamente, ma la grande seccatura è che alla
fine dell'anno, devo cambiare "a manella" i parametri delle query che
generano i trimestri. E' possibile memorizzarli magari in una tabella e fare
il cambio attraverso una funzione VBA? RingraziandoVi comunque per l'aiuto
che mi avete già dato, Vi auguro un proficuo nuovo secolo, anzi millennio.
Saluti Cld.

 ha scritto nel messaggio
news:8uh46.3699$FF1.2...@twister1.tin.it...

Perché non ci posti il codice SQL di una delle tue query e ci spieghi un
pochino meglio il tuo problema?
Buon anno, buon secolo, buon millennio ecc. ecc.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------


Il codice è talmente banale che mi vergognavo a farvelo vedere:
SELECT [Registrazione fatture].Id, [Registrazione fatture].[Data fattura],
[Registrazione fatture].Fornitore, [Registrazione fatture].Imponibile
FROM [Registrazione fatture]
WHERE ((([Registrazione fatture].[Data fattura]) Between #1/1/2000# And
#3/31/2000#));
Date le mie scarne conoscenze, le query sono 4, una per ogni trimestre,
volevo sapere se era possibile variare i parametri attraverso una funzione
in modo da  adeguarli al nuovo anno.Bye


Nel caso tu voglia continuare ad usare le quattro query (una per trimestre),
puoi rendere parametrico l'anno delle due date che circoscrivono il
trimestre da selezionare; quidi nei criteri del campo [Data fattura] della
query del primo trimestre puoi scrivere:
Between DateSerial([Anno:];1;1) And DateSerial([Anno:];3;31)
vedi la funzione DateSerial sull'help.
Naturalmente per la query relativa al secondo trimestre scriverai:
Between DateSerial([Anno:];4;1) And DateSerial([Anno:];6;30)
e così via per le altre due query.
Così facendo, quando si apriranno le query, ti verrà chiesto di digitare
l'anno (a quattro cifre);  so che è una scocciatura digitare ogni volta
l'anno, però penso che ci sarà un periodo dell'anno (ad esempio febbraio) in
cui tu hai la necessità di conoscere sia i dati dell'ultimo trimestre del
2000 che del primo trimestre del 2001. Valuta te comunque quale è la
scocciatura minore.
Comunque puoi anche ipotizzare di lavorare con un'unica query per tutti i
trimestri; in questo caso come criteri dell'unica query scriverai:
Between [Data Inizio Trimestre:] And [Data Fine Trimestre:]
In questo caso, all'apertura della query, ti verrà richiesto di digitare le
due date per intero (nella forma gg/mm/aa); certo che aumenta la roba da
digitare ogni volta.
Se poi vuoi realizzare ciò che hai ipotizzato nel tuo primo messaggio,
ovvero una tabella che contenga quattro record, ognuno dei quali porta le
due date che delimitano un trimestre, puoi fare così:
1) Creati una tabella (chiamala Trimestri) che abbia la seguente struttura:
Trimestre            Numerico e chiave primaria
DataInizio           Data/ora
DataFine            Data/ora
2) Apri la tabella (mi sembra eccessivo creare del codice per aggiornarla) e
sul campo Trimestre, su quattro record differenti, digita 1, 2, 3  e 4 e
nelle due date la data di inizio e fine del relativo trimestre.
3) nei criteri della query del primo trimestre digita:
Between DLookUp("DataInizio";"Trimestri";"Trimestre= 1") And
DLookUp("DataFine";"Trimestri";"Trimestre= 1")
4) nei criteri della query del secondo trimestre digita:
Between DLookUp("DataInizio";"Trimestri";"Trimestre= 2") And
DLookUp("DataFine";"Trimestri";"Trimestre= 2")
e così via per le altre due query.
Così facendo, quando apri le query, non devi digitare nulla; puoi inoltre
organizzare adeguatamente l'aggiornamento della tabella Trimestri in maniera
tale che tu possa vedere i dati del primo trimestre del 2001 e i dati del
quarto trimestre 2000.
Comunque esistono tanti modi diversi per rendere parametrica una query,
dipende dall'interfaccia che vuoi dare all'applicazione.



Questa era la siluzione che cercavo, infatti le altre le avevo sperimentate
ma comportavano sempre l'inserimento di parametri,
mentre questo mi sembra funzionare perfettamente. Il problema di controllo
su 2 diversi anni non si pone perchč mi serve solo nell'arco dell'anno
solare .Grazie dell'attenzione. CLD