Utilizzare query in VBA, parametri mancanti

di il
2 risposte

Utilizzare query in VBA, parametri mancanti

Buongiorno a tutti,
Sto creando un database semplice con alcune maschere per imparare a usare Access. Ho, in particolare, associato al click di un pulsante la seguente funzione:
Private Sub PulsanteSalvaRicevuta_Click()
Dim SQL As String
Dim cfCond As String
Dim QuotaPag As String
cfCond = Form_SituazioneCondomino.RicevCondomino
    For i = 0 To Form_SituazioneCondomino.SelezioneMensilità.ListCount
        
        If Form_SituazioneCondomino.SelezioneMensilità.Selected(i) Then
        QuotaPag = Form_SituazioneCondomino.SelezioneMensilità.Column(0, i)
        SQL = ("UPDATE CheckPagamento SET CheckPagamento.pagato = True WHERE (CheckPagamento.cfCondomino = " & cfCond & " AND CheckPagamento.intestazioneQuota = " & QuotaPag & ");")
        CurrentDb.Execute SQL
        End If
        
    Next
DoCmd.OpenQuery "QuerySalvataggioDatiQuota"

End Sub
SelezioneMensilità è una casella di riepilogo e, se provo a cliccare sul pulsante, effettivamente in fase di debug mi riconosce un codice fiscale in cfCond e una mensilità in QuotaPag, però mi segna comunque l'errore di run time 3061. "Parametri insufficienti. Previsto 2"
Come si può risolvere il problema? Ho cercato vari modi, ho anche usato un altro comando per eseguire la query e mi esce un pop-up in cui mi chiede di inserire manualmente i parametri cfCond e QuotaPag.

Grazie a tutti per la disponibilità!

2 Risposte

  • Re: Utilizzare query in VBA, parametri mancanti

    Prova a dare un'occhiata qui
    Https://www.fontstuff.com/access/acctut15.ht
    in particolare dove dice "Working with variables". Nel tuo caso si tratta di variabili di tipo String.

    Inoltre, quando assegni nella variabile SQL, io toglierei le parentesi tonde all'inizio e alla fine.
  • Re: Utilizzare query in VBA, parametri mancanti

    Funziona!!
    Non avevo inserito i singoli apici per identificare le variabili come string
    Grazie mille per la disponibilità

    Il codice corretto sarebbe:
    SQL = "UPDATE CheckPagamento SET CheckPagamento.pagato = True WHERE (CheckPagamento.cfCondomino = '" & cfCond & "' AND CheckPagamento.intestazioneQuota = '" & QuotaPag & "');"
Devi accedere o registrarti per scrivere nel forum
2 risposte