Newsgroup: it.comp.appl.access
Titolo: Passare i valori ad una query

Ho un problema con access XP.
Da una maschera, attraverso un pulsante, devo richiedere l'immissione di 2
date (data di inizio e data di fine) tramite 2 InputBox che metterò in 2
variabili e poi richiamare una query passandole queste 2 date che serviranno
per filtrare i record da ricercare!!!
Potete aiutarmi a trovare il modo di passare queste 2 variabili alla query
oppure dirmi se c'è il modo, dopo aver dato il comando DoCmd.OpenQuery
("nome tabella"), di poter aggiungere da codice una WHERE che mi permetta di
filtrare i dati utilizzando le 2 variabili???
Spero di essere stato chiaro...Grazie in anticipo
Adriano

 ha scritto nel messaggio
news:b3ven9$rnf$1...@canarie.caspur.it...

Prima osservazione: non hai nessun bisogno di variabili in quanto già i
controlli di una maschera possono essere considerati delle variabili
(ovviamente finchè la maschera rimane aperta) e quindi puoi fare riferimento
direttamente al loro contenuto con
me.nomecontrollo o nomecontrollo o forms("Altra form").nomecontrollo
Seconda osservazione: se ti crei la stringa SQL da codice, allora userai
questi valori, altrimenti tu puoi preparare la tua query già prevedendo il
fatto che filtrerai per i valori inseriti.
Pertanto nella query, sotto il campo data metterai
Between [forms]![tuaform]![DataDA] And [forms]![tuaform]![DataA]
Devi garantirti con dei controlli che i controlli siano stati riempiti prima
di eseguire la query!!!
Antonio

Intanto ti ringrazio per il tuo interessamento,
perň ti vorrei dire una cosa.
Io nella maschera non ho un controllo nel quale vengono messi i valori di
input, ma la data di inizio e di fine vengono richiestre non appena spingo
un bottone della maschera.
I comandi che utilizzo sono i seguenti:
******************************************************
Private Sub accoda_Click()
Dim data_inizio
Dim data_fine
data_inizio = InputBox("Inserisci la data di inizio", "Data Inizio Periodo")
data_fine = InputBox("Inserisci la data di fine", "Data Fine Periodo")
DoCmd.OpenQuery ("Q_intermedia_01_accodamento_P")
End Sub
******************************************************
Nella query perň io ho provato a scrivere nel campo "data operazione":
Between [forms]![M_Menu_Fatturazione]![data_inizio] And
[forms]![M_Menu_Fatturazione]![data_fine]
ma purtroppo questo non funziona in quanto, giustamente, io non ho controlli
che si chiamano "data_inizio" e "data_fine" ma ho solamente 2 variabili che
contengono i valori delle InputBox.
Stando a questo, volevo sapere se mi conviene creare secondo voi 2 controlli
nascosti ai quali assegno rispettivamente i valori delle variabili oppure
esiste un altro modo piů rapido?
Grazie ancora a tutti per la Vs. cortesia
Adriano

 esiste un altro modo più rapido?
Ma perchè non usi i controlli visibili piuttosto che le inputbox, tra
l'altro meno eleganti IMHO?!?
Antonio


Hai ragione riguardo il quoting, infatti eccotelo qua!!!
Sorry!!! ;-))
Comunque alla fine mi sono arreso ed ho fatto praticamente come mi hai
detto..la sola differenza che i controlli li ho messi non visibili e così ho
risolto tutti i problemi!!!
Io volevo solo cercare un modo più carino di fare ciò e mi sono illuso che
potessi passare, aprendo da codice una query, delle variabili per fare vari
controlli!!!
ACCESS...Flessibilità zero ha colpito ancora!!!
Ecco alla fine come ho risolto:
*************************************************************************
Private Sub Comando139_Click()
Dim avviso
Dim data_i
Dim data_f
avviso = MsgBox("Si vuol proseguire ugualmente?", vbOKCancel,
"Attenzione...l'archivio verrà svuotato!!!")
DoCmd.SetWarnings False
If avviso = 1 Then
    DoCmd.OpenQuery ("Q_intermedia_00_elimina_record")
    data_i = InputBox("Inserisci la data di inizio", "Data Inizio Periodo")
    data_f = InputBox("Inserisci la data di fine", "Data Fine Periodo")
    'Assegno al controllo "data_inizio" il valore della variabile data_i
    Me.data_inizio.Value = data_i
    'Assegno al controllo "data_fine" il valore della variabile data_f
    Me.data_fine.Value = data_f
    DoCmd.OpenQuery ("Q_intermedia_01_accodamento_P")
    DoCmd.OpenQuery ("Q_intermedia_01a_accodamento_D")
    DoCmd.OpenQuery ("Q_intermedia_01a_aggiorna_divisa_comm2")
    DoCmd.OpenQuery ("Q_intermedia_01b_aggiornamento_split")
    DoCmd.OpenQuery ("Q_intermedia_01c_aggiornamento_nazione")
    DoCmd.OpenQuery ("Q_intermedia_02a_aggiornamento_broker_a_zero")
    DoCmd.OpenQuery ("Q_intermedia_02b_aggiornamento_broker_P")
    DoCmd.OpenQuery ("Q_intermedia_02c_aggiornamento_broker_D")
    DoCmd.OpenQuery ("Q_intermedia_03_aggiornamento_sconto")
    DoCmd.OpenQuery ("Q_intermedia_04_aggiornamento_sconto_RM_swap")
    DoCmd.OpenQuery ("Q_intermedia_05_aggiornamento_cambio")
    DoCmd.OpenQuery ("Q_intermedia_05a_aggiornamento_commissione_euro")
    DoCmd.OpenQuery ("Q_intermedia_05b_aggiornamento_totale_scontato")
    DoCmd.OpenQuery ("Q_intermedia_06a_aggiornamento_totale_netto")
    DoCmd.OpenQuery ("Q_intermedia_07_aggiorna_divisa_fatture")
End If
End Sub
*************************************************************************
Grazie di tutto e alla prossima...
Adriano

 ACCESS...Flessibilità zero ha colpito ancora!!!
C'è il modo, c'è...
Variabili global in un modulo.
Due funzioni che restituiscano i valori delle var globali.
Chiamata di funzione nella query a queste funzioni.
Antonio