Bonjour tout le monde,
après avoir consulté et utilisé les tutos et autres réponses sur "comment faire un formulaire de connexion", je viens vers vous pour essayer de solutioner un probleme avec mon formulaire de connexion.
J'utilise MS ACCESS 2000 sur un PC Windows 2000 NT Pro
Pour faire simple, j'ai un formulaire qui pointe sur une table contenant les identifiants des utilisateurs de ma base de données.
la table : T_USER_LIST contient les champs NAME, PASSWORD et PROFILE. Tous ces champs sont des champs TEXT.
Dans le formulaire, l'utilisateur selectionne son nom dans une liste déroulante (Combo) puis renseigne sont mot de passe dans le champs text situé juste en dessous.
Lorsqu'il appuie sur le bouton OK, je souhaiterai que la moulinette suivante soit effectuée :
- Comparaison de la valeur selectionnée dans la combo avec celle de la colonne NAME de la table T_USER_LIST
- Comparaison de la valeur tapée dans le champs text avec celle contenue dans la colonne PASSWORD de la table
- Pour le NAME selectionné, en fonction de la valeur du PROFILE (USER ou ADMIN) ouvrir la base de données sur le formulaire USER ou ADMIN
Voici le code que j'ai utilisé pour essayer de construire ma commande:
Malheureusement, quand j'essaie d'ouvrir le formulaire de connexion (F_LOGIN), j'ai l'erreur suivante :
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 Private Sub OK_Click() On Error GoTo Err_OK_Click DoCmd.SetWarnings False DoCmd.RunSQL ("DELETE IATA Code.* FROM T_TEMPO_CUSTOMER_SELECTION") DoCmd.RunSQL ("DELETE IATA Code.* FROM T_TEMPO_CUSTOMER_SELECTION_2") DoCmd.RunSQL ("DELETE IATA Code.* FROM T_TEMPO_CUSTOMER_SELECTION_3") DoCmd.RunSQL ("DELETE IATA Code.* FROM T_TEMPO_CUSTOMER_SELECTION_4") Me.Requery Dim sql, User_id, User_profile As String Dim rs As DAO.Recordset Static i As Integer i = 0 sql = "SELECT * FROM T_USER_LIST WHERE NAME = '" & Me.Combo0 & "' AND PASSWORD ='" & Me.Text2 & "';" Set rs = CurrentDb.Recordset(sql) While (Not rs.EOF) User_id = rs("NAME").Value User_profile = rs("PROFILE").Value If User_profile = "USER" Then DoCmd.OpenForm "F_MAIN_PAGE_USERS1", acNormal, , , , acWindowNormal DoCmd.Close acForm, "F_LOGIN" rs.MoveLast Else If User_profile = "ADMIN" Then DoCmd.OpenForm "F_MAIN_PAGE_ADMIN", acNormal, , , , acWindowNormal DoCmd.Close acForm, "F_LOGIN" rs.MoveLast Else rs.MoveNext End If End If Wend If rs.EOF Then MsgBox "(NAME, PASSWORD) incorrect ", vbInformation, "Connexion" i = i + 1 End If If i = 3 Then MsgBox "Vous avez dépassé le nombre de tentatives autorisées", vbCritical 'rs("Statut").Value = "Bloqué" DoCmd.Quit End If Exit_OK_Click: Exit Sub Err_OK_Click: MsgBox Err.Description Resume Exit_OK_Click End Sub
Est-ce que quelqu'un pourrait me donner un petit coup de main SVP?!!The expression On Click you entered as the event property setting produced the following error: User-defined type not defined.
* The expression may not result in the name of a macro, the name of a user-defined function, or [Event Procedure].
* There may have been an error evaluating the function, event, or macro.
Merci et bonne journée
Guillaume
Partager