Newsgroup: it.comp.appl.access
Titolo: Ciclo Do Loop su query (Errore 3061)

Buongiorno, ho un DB con 2 tabelle Anagrafica e Contratti.
Anagrafica IdAna,  ProANA, Cognome, Nome
Contratti IdCon, RifANA, Numero, data Importo
Ho una Maschera Anagrafica, con una sottomaschera contratti (che ha come 
origine dati una query QryCont, in cui il RifANA = ProANA e NumeroC è il 
numero di contratto),
Vorrei visualizzare in una casella di testo l'elenco del numero dei 
contratti. Utilizzo il seguente codice:
Dim DBCor as DAO.database
Dim RST as DAO.Recordset
Dim Testo
Set DbCor = CurrentDB
Set RST = DbCor.openrecordset("QryCont")
Do While not rst.EOF
Testo = Testo & rst.fields ("NumeroC")
rst.movenext
Loop
rst.close
DBcor.close
Ma mi da errore "Errore di run-time '3061'
Parametri insufficienti. Previsto 1
se sostituisco la query con la tabella, il ciclo funziona correttamente, ma 
"concatena" tutti i record della tabella.
Grazie 


Guarda bene, ci potrebbero essere errori nei nomi dei campi
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access

 ha scritto nel messaggio 
news:ZTWNk.181114$FR.4...@twister1.libero.it...

Ciao Alan,
mostra il codice SQL di QryCont, l'errore è abbastanza significativo, 
sembrerebbe che la query si aspetta un parametro che tu non gli passi.
-- 
Cinzia [Office Access MVP]
_______________________
 
www.riolab.org
http://accessdaziacin.spaces.live.com
---------------------------------------- 

 ha scritto nel messaggio 
news:ge9ee9$loq$1...@tdi.cu.mi.it...

Ciao, grazie per la pronta risposta, ho controllato il nome della query e 
dei campi ed è esatto, ho messo al posto del nome della query, il nome della 
tabella e funziona, (ma mi concatena tutti i record e non quelli selezionati 
dalla query). 

 ha scritto nel messaggio 
news:49083d90$0$14503$5fc...@news.tiscali.it...

SELECT Contratti.ID, Contratti.RifAna, Contratti.Data, Contratti.NumeroC, 
FROM Contratti
WHERE (((Contratti.RifAna)=[Forms]![ANAGRAFICA]![PROANA])); 

 selezionati dalla query).
Non hai risposto a Cinzia.
mostra sql della query.
-- 
Ciao
Geppo 

 Geppo
Ciao geppo  ho postato, cmq eccolo anche a te, Grazie tante


 WHERE (((Contratti.RifAna)=[Forms]![ANAGRAFICA]![PROANA]));
-- 
Ciao
Geppo 

 Geppo
La form Anagrafica č aperta, se visualizzo la query  vedo i record filtrati, 
uso Access 2007, puo essere questo ? 

 ha scritto nel messaggio 
news:ZTWNk.181114$FR.4...@twister1.libero.it...

Ho fatto ulteriori test, se nella query inserisco un criterio manuale (es. 
RifAna  = 10) il ciclo funziona correttamente, se invece inserisco nei 
criteri [Forms]![Anagrafica]![PROANA] mi dice parametri insufficienti 

 filtrati, uso Access 2007, puo essere questo ?
Ciao Alan,
il problema dipende dal fatto che la openRecordset non riesce a 
valutare il parametro Forms![ANAGRAFICA]![PROANA]
ecco 2 workaround:
1)
strsql = SELECT Contratti.ID, Contratti.RifAna, Contratti.Data, 
Contratti.NumeroC FROM Contratti " & _
" WHERE (Contratti.RifAna=" & Forms![ANAGRAFICA]![PROANA] & ")"
Set RST = DbCor.openrecordset(strsql)
......
2)
Set db = CurrentDb
Set qdf = db.QueryDefs("qryCont")
For Each prm In qdf.Parameters
  prm.Value = Eval(prm.Name)
Next prm
Set rs = qdf.OpenRecordset


cut
ciao Alan
anche io mi sono scontrato con questo errore.
Pare che se una query č parametrate con forms!miaform!eccetera eccetera
non possa essere usata con  i recordset.
Allora, non mi ricordo chi, mi ha consigliato questo trucchetto.
Prova e vedrai che funziona.
al posto del parametro FORMS!tuaform!tuocontrollo
metti usa una funzione pubblica
mioParametro()
in un modulo crea una funzione pubblica
public function mioparametro() as string ........' o altro
mioparametro = FORMS!tuaform!tuocontrollo
end function
Facendo cosě la query parametrata funziona lo stesso
e se la richiami via codice non ricevi l'errore.
Ciaoo Fanciullo