Etant novice en matière de VBA, j'ai récupéré sur Internet un code permettant à mes utilisateurs access de se connecter avec un mot de passe.
J'ai donc copier ce code et l'ai adapté à ma BDD, or je rencontre un problème lors de l'exécution de la procédure et je ne sais pas comment la résoudre.
Si quelqu'un a une solution, je suis preneur.
Voici le code et le message d'erreur, je vous remercie d'avance :
Private Sub Connexion_Click()
Me.Requery
Dim sql, User_id As String
Dim rs As DAO.Recordset
Static i As Byte
sql = "SELECT * FROM T_Utilisateur WHERE ID_Utilisateur = Me.F_Loggin_ID AND Pass_Utilisateur = Me.F_Loggin_Pass"
Set rs = CurrentDb.OpenRecordset(sql)
If Not rs.EOF Then
DoCmd.OpenForm "F_Formulaire de navigation", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "F_Loggin"
User_id = rs("ID_Utilisateur").Value
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisées", vbCritical
DoCmd.Quit
End If
End Sub
" ERREUR D'EXECUTION '3061' :
Trop peu de paramètres. 2 attendu."
Ligne "Set rs = CurrentDb.OpenRecordset(sql)" en surbrillance jaune
Private Sub Connexion_Click()
Dim sql, User_id As String
Dim rs As DAO.Recordset
Static i As Byte
Me.Requery
sql = "SELECT * FROM T_Utilisateur WHERE ID_Utilisateur =" & Me.F_Loggin_ID & " AND " & Pass_Utilisateur & "=" & Me.F_Loggin_Pass
Set rs = CurrentDb.OpenRecordset(sql)
If Not rs.EOF Then
DoCmd.OpenForm "F_Formulaire de navigation", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "F_Loggin"
User_id = rs("ID_Utilisateur").Value
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisées", vbCritical
DoCmd.Quit
End If
End Sub
J'ai tenté de modifier la requête mais j'ai toujours une erreur :
Erreur de syntaxe (opérateur absent) dans l'expression
"ID_Utilisateur =JD AND =test"
JD étant l'identifiant et test le mot de passe..
Je dois vous avouer que je ne comprend pas encore ces problèmes de syntaxe dans les requêtes.
ton pass_utilisateur doit être dans la requête et il est vraisemblable que le password soit une chaine, elle doive être 'enquotée'...
Merci pour votre aide f894009 et blux , la requête fonctionne, j'ai juste modifier un léger détail :
sql = "SELECT * FROM T_Utilisateur WHERE ID_Utilisateur =" & Me.F_Loggin_ID & "' AND Pass_Utilisateur = '" & Me.F_Loggin_Pass & "'"
' après la chaîne : Me.F_Loggin_ID & "