Formulaire de connexion avec mot de passe

Résolu/Fermé
floriandu77700 Messages postés 3 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 12 juin 2013 - Modifié par floriandu77700 le 11/06/2013 à 17:30
floriandu77700 Messages postés 3 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 12 juin 2013 - 12 juin 2013 à 10:27
Bonjour,

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

A voir également:

1 réponse

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
12 juin 2013 à 08:47
Bonjour,

integrez vos variables dans votre requete:

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
0
floriandu77700 Messages postés 3 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 12 juin 2013
12 juin 2013 à 09:51
Bonjour, merci de votre réponse

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.
0
blux Messages postés 26502 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 2 décembre 2024 3 317
Modifié par blux le 12/06/2013 à 10:06
Salut,

ton pass_utilisateur doit être dans la requête et il est vraisemblable que le password soit une chaine, elle doive être 'enquotée'...

sql = "SELECT * FROM T_Utilisateur WHERE ID_Utilisateur =" & Me.F_Loggin_ID & " AND Pass_Utilisateur = '" & Me.F_Loggin_Pass & "'"
0
floriandu77700 Messages postés 3 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 12 juin 2013
Modifié par floriandu77700 le 12/06/2013 à 10:28
Salut,

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 & "
0