Metodo OpenRecordset

di il
4 risposte

Metodo OpenRecordset

Ciao a tutti,
premetto che sono un neofita e sto cercando di imparare a programmare in vba per access.

ho scritto questa routine:
Private Sub DataCheckout_AfterUpdate()
Dim DtT, Checkin, Checkout As Date
Dim IDCasa As Integer
Dim SQL As String
Checkin = Me.DataCheckin
Checkout = Me.DataCheckout
IDCasa = Me.IDCasa
SQL = "SELECT tblPrenotazioni.* FROM tblPrenotazioni WHERE tblPrenotazioni.IDStatusPrenotazioni<>3 AND tblPrenotazioni.IDCasa = '" & IDCasa & "';"
Set db = CurrentDb
Set rs = db.OpenRecordset(SQL, dbOpenSnapshot, dbReadOnly) 'Creo il rs filtrato per IDStatusPrenotazione e IDCasa
Do Until rs.EOF
    For DtT = Checkin To Checkout
        If DtT >= rs("DataCheckin") And DtT <= rs("DataCheckout") Then
            MsgBox "La casa è stata già prenotata o c'è un preventivo in attesa di conferma per queste date!", vbOKOnly, "Attenzione!"
            Exit Sub
        Else
        DtT = DtT + 1
        End If
    Next DtT
Loop
End Sub
nella riga in cui invoco il metodo db.OpenRecordset il debug mi dice "Errore di run-time '3061': Parametri insufficienti. Previsto 1.

Qualcuno può aiutarmi a capire dov'è l'inghippo?
Ringrazio in anticipo e chiedo scusa se ho eventualmente posto male la domanda.

4 Risposte

  • Re: Metodo OpenRecordset

    Hai controllato con il debugger cosa valgono "SQL, dbOpenSnapshot, dbReadOnly"?
  • Re: Metodo OpenRecordset

    Io rilevo:
    1. db e rs non sono state dichiarate rispettivamente come variabili DAO.Database e DAO.Recordset.
    2. Alla fine della SELECT hai concatenato IDCasa che, essendo numerico, non ha bisogno degli apici singoli (credo).
    3. Il ciclo Do...Loop non prevede il MoveNext.
  • Re: Metodo OpenRecordset

    Sicuro che l'errore non sia il predicato SQL:
    
    SQL = "SELECT tblPrenotazioni.* FROM tblPrenotazioni WHERE tblPrenotazioni.IDStatusPrenotazioni<>3 AND tblPrenotazioni.IDCasa = " & IDCasa & ";"
  • Re: Metodo OpenRecordset

    Ciao a tutti,
    in effetti c'era un errore nella stringa SQL che ho corretto.
    Grazie!
Devi accedere o registrarti per scrivere nel forum
4 risposte