Gestion utilisateurs avec login et mot de passe
Bonjour
Pour me permettre de faire une gestion des utilisateurs, j'ai crée un formulaire contenant 2 champs (Login, Password) et un bouton "Authentification"
Dans l'événement sur clic du bouton j'ai inséré le code ci-après:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Private Sub Commande11_Click()
Dim dbs As Database
Dim rs As Recordset
Dim strSql As String
Set dbs = CurrentDb
strSql = "SELECT * FROM Utilisateurs Where Nom='" & Replace(Me.Login, "'", "''") & "'"
Set rs = dbs.OpenRecordset(strSql)
sUser = ""
sProfil = ""
sService = ""
If Not (rs.EOF And rs.BOF) Then
If StrComp(Me.Password, rs.Fields("Connexion"), vbBinaryCompare) > 0 Then
MsgBox "Utilisateur ou mot de passe incorrect", vbCritical
Else
sUser = rs.Fields("Nom")
sProfil = rs.Fields("Profil")
sService = rs.Fields("Service") & ""
DoCmd.Close
Select Case sProfil
Case "R", "G"
DoCmd.Openform "Utilisateur"
Case Else
DoCmd.Openform "Administrateur"
End Select
End If
Else
MsgBox "Utilisateur ou mot de passe incorrect", vbCritical
End If
End Sub |
Lorsque j'introduis le Login et Password, ça marche nickel
Par contre, lorsque j'introduis uniquement le Login et que j'appuie sur le bouton ça rentre alors que ça doit pas rentrer
Je crois qu'il y quelque chose qui manque au code VBA, que j'en connais rien du tout puisque ce code ci-dessus m'a été préparé par un informaticien de passage
Merci beaucoup pour votre aide
Gestion utilisateurs avec login et mot de passe
Bonjour Fred
Merci pour votre réponse
J'ai suivi le modèle de la FAQ, mais ça me retourne le message d'erreur suivant :
Erreur d'exécution '3075':
Erreur de syntaxe (opérateur absent) dans l'expression "TRIGRAMME=\'ADMIN\' AND PASWD=\'admin\'"
Je ne sais comment procéder, je suis novice en VBA
Merci bcp
Gestion utilisateurs avec login et mot de passe
C'est OK Monsieur Fred
J'ai enlevé les Slash (\) et ça a marché nickel
Merci beaucoup pour votre collaboration
Cordialement
Gestion utilisateurs avec login et mot de passe
Désolé Monsieur Fred de vous importuner encore une fois
Le modèle que vous m'avez proposé dans la FAQ ne concerne qu'un seul formulaire
Dans mon cas, j'ai 3 formulaires correspondant à 3 profils . J'aimerai bien que suivant le profil qui se connectera, c'est le formulaire correspondant qui s'ouvre
Voici le code pour vous faciliter
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Private Sub connexion_Click()
Me.Requery
Dim sql, User_id, User_groupe As String
Dim rs As DAO.Recordset
Static i As Byte
sql = "SELECT * FROM T_USERS WHERE TRIGRAMME = \'" & Me.txt_user & "\' AND PASWD =\'"& Me.txt_pass & "\';"
Set rs = CurrentDb.OpenRecordset(sql)
If Not rs.EOF Then
DoCmd.OpenForm "F_Autre_Formulaire", acNormal, , , , acWindowNormal
DoCmd.close acForm, "F_CONNEXION"
User_id = rs("TRIGRAMME").value
User_groupe = rs("GROUPE").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 |
Merci encore une fois pour votre collaboration