Bonjour,
je me tourne encore fois vers le Forum qui m'a toujours été d'un grand aide lorsque je bloquais quelque part !
Cette fois ci c'est au niveau de mon formulaire de connexion.
Mon application est multi utilisateur, j'ai donc une BD frontale et dorsale.
°Sur la dorsale j'ai une table T_users(TRIGRAMME, NOM, PRENOM, PASSWORD). Cette table est lié à la frontale.
°Sur la frontale j'ai une Table T_User(TRIGRAMME) qui a une relation avec la table lié T_users. Le but de cette table est d'enregistrer le TRIGRAMME de la personne qui se connecte. Cela me permet par la suite de venir filtrer les enregistrements de ma table principale.
Au niveau de la connexion il n'y a pas de soucis, ce que je souhaite réaliser c'est, de donner le moyen à l'utilisateur de créer sont mot de passe si il en a pas. Le principe est que, lorsque qu'il sélectionne son identifiant dans la liste dérroulante et qu'il clic sur la zone de texte mot de passe, une fonction Dlookup recherche si il y a une valeur dans le champ PASSWORD de la table T_users. Si le Dlookup retourne NULL alors ouverture d'un formulaire de saisie du nouveau mot de passe ou affichage d'une zone de texte (dans le form connexion) a voir ce qui est le mieux.
La ou je bloque c'est au niveau du code. En fonction de l'identifiant sélectionné,le nouveau mot de passe doit venir s'enregistrer sur l'enregistrement correspondant dans la table T_users
voici mon code pour la connexion :
et le Dlookup
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Private Sub Commande0_Click() Dim db As DAO.Database Dim sql, User_id As String Dim Rs As DAO.Recordset Static i As Byte sql = "SELECT * FROM T_users WHERE TRIGRAMME = '" & Me.txt_user & "' AND PASSWORD ='" & Me.txt_pass & "';" Set db = CurrentDb Set Rs = db.OpenRecordset(sql) If Not Rs.EOF Then DoCmd.OpenForm "Menu_utilisateur", acNormal, , , , acWindowNormal DoCmd.Close acForm, "F_CONNEXION" User_id = Rs("TRIGRAMME").Value ' Sauvegarde ds table T_User Rs.Close db.Execute "DELETE FROM T_User" Set Rs = db.OpenRecordset("T_User") Rs.AddNew Rs("TRIGRAMME") = User_id Rs.Update Rs.Close Else MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion" DoCmd.Hourglass False i = i + 1 End If If i = 3 Then DoCmd.Hourglass False MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical DoCmd.Quit End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub txt_user_LostFocus() Dim TN As Variant TN = DLookup("[PASSWORD]", "[T_users]", "[TRIGRAMME]='" & Me.txt_user & "'") If IsNull(TN) Then "ouverture du form creation MDP ou affichage zone de texte pour saisie" Else End If End Sub
je ne vois vraiment pas comment faire, je débute en VBA et j'ai été aidé pour les codes présent ci dessus. Si quelqu'un avait une piste ca serait vraiment bien...
Merci d'avance !!
Partager