Kave bonjour,
Pour commencer mon code suivait la logique développé dans ta question à savoir contrôler un mot de passe avec un identifiant (login) ce qui aurait été une grosse erreur. Il faut donc comparer le mot de passe de l'utilisateur renseigné (dans la table tbUsers) et celui renseigné sur le formulaire d'identification.
Ce copier coller :
If transforme_chaine(Me.Login) <> transforme_chaine(Me.txtPassword) Then
est donc une une aberration.
donc les étapes sont :
1. Vérifier la présence d'un identifiant
2. Récupérer le mot de passe dans la table
3. Comparer les deux mots de passe avec gestion de la casse (ainsi password <> Password)
La récupération d'un mot de passe dans la table avec le filtre identifiant s'opère par l'utilisation des fonctions de domaines grâce à Dlookup :
http://starec.developpez.com/tuto/fonctionsdomaines/
Le code fourni sur clic de ton bouton devient :
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
| Private Sub Commande7_Click()
Dim Password As String
'
' On vérifie la saisie d'un login
'
If Nz(Me.LOGIN, "") = "" Then
MsgBox "Vous devez saisir un login !"
Exit Sub
End If
'
' Récupère le mot de Passe grâce à une fonction de domaine
'
Password = Nz(DLookup("[MOT DE PASSE]", "tblUser", "LOGIN='" & Me.LOGIN & "'"), "")
'
' comparaison du mot de passe stocké dans tbuser avec celui du forms
' Uilisation de la fonction contrôle de la casse
'
If transforme_chaine(Password) <> transforme_chaine(Me.txtPassword) Then
MsgBox "Mot de passe erroné"
Else
DoCmd.Close ' ferme le formulaire frmlogin
DoCmd.OpenForm "frmMainMenu" ' ouverture du formulaire menu
End If
End Sub |
Malgré tout quelques conseils sur ton projet :
1. Eviter les espaces et accents dans le nom de tes champs dans les tables,
2. donner des noms à tes contrôles (exemple bt_valider plutôt que cmmande7)
Si la réponse donnée est conforme à tes attentes pense à mettre
. Pour de nouvelles demandes pense à créer un nouveau fil de discussion.
Cordialement
jimbolion
Partager