Dans 1 même module de formulaire, j'ai 2 procédures différentes qui ouvre 1
recordset.
Dans les références, j'ai :
Visual Basic For Applications
Microsoft Access 10.0 Object Library
Microsoft Scripting Runtime
Microsoft DAO 3.3 Object Library
Je suis sur Windows XP Pro et Office XP Pro.
Toutes les mises à jours Windows et Office Update sont effectuées.
Dans la 1ère procédure, j'ai ceci :
Private Sub MonControl1_BeforeUpdate(Cancel As Integer)
Dim db As Database
Dim rs As Recordset
Dim rq As String
Dim nb_enr As Integer
Set db = CurrentDb
rq = "Select * From [Ma Table 1] Where MonChamp1=" & _
Me.MonControl1 & " And MonChamp2=" & Me.MonControl2 & " And (" & _
"MonChamp3=" & Me.MonControl3 & " Or MonChamp4=" & _
Me.MonControl4 & ");"
Set rs = db.OpenRecordset(rq)
nb_enr = rs.RecordCount
If nb_enr = 0 Then
'...
End If
Set rs = Nothing
Set db = Nothing
End Sub
Cette procédure ci-dessus fonctionne.
Par contre, la procédure ci-dessous ne fonctionne pas. Elle est dans le même
module de mon formulaire.
Private Sub MonControl10_AfterUpdate()
Call MaProcedure
End Sub
Sub MaProcedure()
Dim db2 As Database
Dim rs2 As Recordset
Dim rq2 As String
Dim nb_enr2 As Byte
Set db2 = CurrentDb
rq2 = "SELECT * FROM [Ma Table 2]" & _
" WHERE MonChamps10=" & Me.MonControl10 & _
" AND MonChamps11=" & MonControl11 & ";"
Set rs2 = db2.OpenRecordset(rq2)
nb_enr2 = rs2.RecordCount
If nb_enr2 > 0 Then
Me.MonControl12 = rs2.Fields("MonChamps12")
End If
Set rs2 = Nothing
Set db2 = Nothing
End Sub
L'erreur se produit à la ligne
Set rs2 = db2.OpenRecordset(rq2)
Avec l'erreur d'éxécution '3061' :
Trop peu de paramètres. 1 attendu.
Fin / Débogage / Aide
Je ne vois pas pourtant pas de différences entre les 2 procédures.
Merci de votre aide.