Newsgroup: it.comp.appl.access
Titolo: A97: recordset e query di accodamento

Ciao a tutti, ho questo codice
#######################
Private Sub AggiungiTutto_Click()
Dim NRecordPrec As Integer, NRecordFinali As Integer
Dim rstWeb As Recordset
Dim rstTable As Recordset
Dim rstAgg As Recordset
Dim strAggSupp As String
DoCmd.SetWarnings False
CurrentDb.Execute ("DELETE * FROM AggFileSupp")
DoCmd.OpenQuery "__CreaAggFileSupp"
DoCmd.SetWarnings True
Set rstWeb = CurrentDb.OpenRecordset("AggWeb")
Set rstTable = CurrentDb.OpenRecordset("AggWebTable")
Set rstAgg = CurrentDb.OpenRecordset("AggFileSupp")
DoCmd.OpenForm "AggWeb_Conteggio", , , , , acHidden
NRecordPrec = Forms![AggWeb_Conteggio]![ConteggioDiId_Agg]
DoCmd.Close acForm, "AggWeb_Conteggio"
        Do While rstAgg.EOF = False
            Do While rstTable.EOF = False
                rstWeb.AddNew
                rstWeb!Id_Cliente = rstTable!Id_Cliente
                rstWeb!NomeAgg = rstAgg!NomeAgg
                rstWeb!Descrizione = rstAgg!Descrizione
                rstWeb!DataRilascio = rstAgg!DataRilascio
                rstWeb!HRef = rstAgg!HRef
                rstWeb.Update 'si  aggiorna
                rstTable.MoveNext
            Loop
            rstTable.MoveFirst
            rstAgg.MoveNext
        Loop
DoCmd.OpenForm "AggWeb_Conteggio", , , , , acHidden
NRecordFinali = Forms![AggWeb_Conteggio]![ConteggioDiId_Agg]
DoCmd.Close acForm, "AggWeb_Conteggio"
MsgBox "Aggiornamento Effettuato. Il numero di record accodati č: " &
NRecordFinali - NRecordPrec, vbOKOnly + vbInformation, "Aggiornamento Web"
Exit_AggiungiTutto_Click:
    Exit Sub
End Sub
###########################
che funziona perfettamente, pero' se al posto del
DoCmd.OpenQuery "__CreaAggFileSupp"
inserisco la stringa seguente (copiata dall'SQL della query!)
strAggSupp = "INSERT INTO AggFileSupp " & _
"SELECT Agg_File.* " & _
"FROM Agg_File " & _
"WHERE (((Agg_File.Id_Agg_Gruppo) Like [Forms]![AggWeb_Gestione_GRUPPI]!
[AggGruppo]))"
con il comando
CurrentDb.Execute (strAggSupp)
il codice si ferma sulla riga
Set rstAgg = CurrentDb.OpenRecordset("AggFileSupp")
e mi restituisce il seguente errore:
Errore di Run-Time '3061':
Parametri insufficienti. Previsto 1
sapete spiegarmi il motivo, dato che se mi copio la stringa di
strAggSupp e la incollo in una query funziona perfettamente?
grazie a chiunque possa essermi di aiuto.
Riccardo

 Parametri insufficienti. Previsto 1
Il problema è quel riferimento al valore contenuto nel controllo aggruppo
della form aggweb_gestione_gruppi.
In una query ci pensa a risolvere quel riferimento e la sintassi è giusta.
Nel codice invece, tu stai scrivendo una stringa, e quando devi passare il
alore di un controllo, lo devi trattare come se fosse una variabile. Quando
si deve concatenare il valore di una variabile afd una stringa, si deve
chiudere la stringa e concatenarla con la variabile, non mettere la
variabile dentro la stringa.
"pippo = x" significa che pippo è uguale alla lettera x
"pippo = " & x significa che pippo è uguale al valore contenuto nella
variabile x
Antonio

 wrote in message
g3rR6.5752$i71.2...@news.infostrada.it...

ok, mille grazie, quindi questa stringa è giusta?
a me sembra di si!
strAggSupp = "INSERT INTO AggFileSupp " & _
"SELECT Agg_File.* " & _
"FROM Agg_File " & _
"WHERE (((Agg_File.Id_Agg_Gruppo) Like " &
[Forms]![AggWeb_Gestione_GRUPPI]![AggGruppo] & _
" AND (Agg_File.SysOp) Like ""*" & "" &
[Forms]![AggWeb_Gestione_GRUPPI]![SysOp] & "" & "*""))"
ciao e grazie
Riccardo


Con la riga che ti dà errore stai cercando di aprire un recordset su una
query. Tutto andrebbe bene se la query non fosse parametrica come invece é
(clausola WHERE).
Per maggiori ragguagli di come aprire una query parametrica con del codice
VBA, vai sul Sito Comune, Sezione Queries, e dai uno sguardo alla FAQ di
Federico Luciani intitolata "Aprire una query parametrica da codice VBA".
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 [Forms]![AggWeb_Gestione_GRUPPI]![SysOp] & "" & "*""))"
Direi di sě. Tieni presente comunque che se questo codice č scritto nel
modulo associato alla maschera AggWeb_Gestione_GRUPPI, allora non hai
bisogno di scrivere tuta la sintassi per riferirsi ad un controllo di una
form qualsiasi aperta, ma ti basta usare il nome del controllo direttamente
Antonio