Newsgroup: it.comp.appl.access
Titolo: RECORDSET E QUERY CON PARAMETRI

Ciao a tutti e buona pasqua
Premessa ( cosi si capisce meglio la cacchiata che ho fatto sotto)
Ho una query ( calcolo_riclassificazione_2_subtotali) che deve girare n 
volte in sequenza ed ogni volta devo passare alla query un valore diverso 
(posiz)
Le n volte dipendono dai dati che risiedono nell tabella (appo_posizione_ce)
Ho provato ad utilizzare un recordset per pescare i dati in sequenza dalla 
tabella
e passare il dato alla query utilizzanto query.defs e parameters!
Il sistema si inchioda a: Set qdf2 = 
dbs.QueryDefs("calcolo_riclassificazione_2_subtotali")
Dicendomi: Errore di run-tim '91'     Variabile oggetto o variabile del 
blocco qith non impostata
Spero di esser stato + o - chiaro
Help please
Gu
____________________________________________________________________________
Codice:
Dim dbs As DAO.Database
Dim qdf2 As DAO.QueryDef
Dim rst As DAO.Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("appo_posizione_ce")
Do Until rst.EOF
rst.MoveNext
Set qdf2 = dbs.QueryDefs("calcolo_riclassificazione_2_subtotali")
qdf2.Parameters![scelta posizione:] = rst![posiz]
qdf2.Execute
qdf2.Close
Set dbs = Nothing
Loop
rst.Close 

 rst.Close
Ci sono troppi errori nel codice che hai scritto...!
Intanto la Query che esegui non restituisce Records...  ma parrebbe
una Query Action.
E' vero oppure è un'errore...?
Se volevi un Recordset dovevi assegnarlo ad un Recordset.
In ogni caso l'errore più evidente, che avresti sicuramente visto
seguendo il Ciclo
con il Debug è che si inchida solo al 2° passaggio... il primo
dovrebbe essere OK
se non chè hai messo il MoveNext prima di eseguire l'azione... perchè
mai ...?
Dai un'occhiata che hai messo nel Loop la distruzione dell'Oggetto dbs
ed è quello che
ti genera l'errore..!
Dim dbs As DAO.Database
 Dim qdf2 As DAO.QueryDef
 Dim rst As DAO.Recordset
 Set dbs = CurrentDb
 Set rst = dbs.OpenRecordset("appo_posizione_ce")
 Do Until rst.EOF
      Set qdf2 =
dbs.QueryDefs("calcolo_riclassificazione_2_subtotali")
      qdf2.Parameters![scelta posizione:] = rst![posiz]
      qdf2.Execute
      qdf2.Close
 rst.MoveNext
 Loop
 Set dbs = Nothing
 rst.Close
Mi rimane da capire che fà EXECUTE...
@Alex

ora non si inchioda ma non fa i calcoli............. :-(
La query è una query di accodamento
l'sql della qury è:
INSERT INTO appo_riclassificazione ( cod_tipo, posiz, euro_anno1 )
SELECT a_ricl_ce_t.cod_tipo, a_ricl_ce_posizione.posiz, 
Sum(appo_riclassificazione.euro_anno1) AS SommaDieuro_anno1
FROM a_ricl_ce_tipo INNER JOIN ((a_ricl_ce_t INNER JOIN (a_ricl_ce_ldr INNER 
JOIN a_ricl_ce_posizione ON a_ricl_ce_ldr.id_ldr = 
a_ricl_ce_posizione.id_ldr) ON (a_ricl_ce_t.id_t = a_ricl_ce_posizione.id_t) 
AND (a_ricl_ce_t.id_t = a_ricl_ce_posizione.id_t) AND (a_ricl_ce_t.id_t = 
a_ricl_ce_posizione.id_t) AND (a_ricl_ce_t.id_t = a_ricl_ce_posizione.id_t)) 
INNER JOIN (appo_riclassificazione INNER JOIN a_ricl_ce_d2 ON 
appo_riclassificazione.id_posizione = a_ricl_ce_d2.Id_subtotale) ON 
(a_ricl_ce_t.id_t = a_ricl_ce_d2.id_t) AND (a_ricl_ce_posizione.id_posizione 
= a_ricl_ce_d2.id_posizione) AND (a_ricl_ce_t.id_t = a_ricl_ce_d2.id_t)) ON 
a_ricl_ce_tipo.cod_tipo = a_ricl_ce_t.cod_tipo
GROUP BY a_ricl_ce_t.cod_tipo, a_ricl_ce_posizione.posiz
HAVING (((a_ricl_ce_t.cod_tipo)="CE") AND 
((a_ricl_ce_posizione.posiz)=[scelta posizione:]));
l'execute dovrebbe eseguire la query o no?
Grazie per la disponibilità
Gu


Si se è una Query Action va bene.
@Alex

Infatti ora funziona
Mille grazie per la disponibilità
Gu