bonjour,
petit problème de codage pour mot de passe
la table TUsers contient les champ TUsersId et TUsersMDP
TUsersId correspond à l'utilisateur connecté "prénom.nom"
TUsersMDP le mot de passe lié à TUsersId
UserName est récupéré sur le load du formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal user As String, usersize As Long) As Longle code suivant est censé comparer le mot de passe entré avec le mot de passe de la table TUsers et ouvrir un autre formulaire si le UserName récupéré par l'API correspond au TUsersId de TUsers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Form_Load() Dim user As String Dim usersize As Long user = Space$(255) usersize = Len(user) Call GetUserName(user, usersize) If usersize > 0 Then Me.UserName = Left$(user, usersize) Else Me.UserName = Null End If End Sub
en cliquant sur Commande14 ça bloque sur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub Commande14_Click() Dim msgerreur As Variant Dim stDocName As String Dim stLinkCriteria As String Dim sql As String Dim rst As DAO.Recordset sql = "SELECT TUsersId FROM TUsers WHERE TUsersId = " & Chr(34) & Me.UserName & Chr(34) rst = CurrentDb.OpenRecordset(sql) If (rst.BOF And rst.EOF) = False Then If rst![TUsersMDP] = Me.Mot_de_passe Then stDocName = "Menu" DoCmd.Close DoCmd.OpenForm stDocName, , , stLinkCriteria Else MsgBox "Mot de passe erroné" End If Else msgerreur = MsgBox("Utilisateur non autorisé - Rapprochez-vous de l'administrateur de l'application", vbOKCancel) End If rst.Close End Sub
par une "erreur de compilation - utilisation incorrecte de la propriété"
Code : Sélectionner tout - Visualiser dans une fenêtre à part rst = CurrentDb.OpenRecordset(sql)
Microsoft DAO 3.6 object library est activé
pouvez-vous m'éclairer svp ?
merci
Partager