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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
Dim TblNom() As String
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX=2;"""
End Sub
Sub RecupNoms(Plage As String)
Dim ConnectCL As Object
Dim Rs As Object
Dim Champ As Object
Dim Classeur As String
Dim NomFeuille As String
Dim DerCel As Integer
Dim I As Integer
Dim J As Integer
'chemin du classeur cible
Classeur = "D:\DataBase.xls"
'nom de la feuille où se trouve les différentes plages
'des noms utilisateur et mots de passe à récupérer
NomFeuille = "Sheet1"
'ouvre une première connexion pour la recherche
ConnectCLasseur ConnectCL, Classeur, Rs
'ouvre pour récupérer les noms
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$" & Plage & "` ", ConnectCL
.MoveFirst
'stocke les noms dans un tableau
ReDim TblNom(1 To .Fields.Count, _
1 To .RecordCount)
Do While Not .EOF
I = I + 1
For Each Champ In .Fields
J = J + 1
TblNom(J, I) = Champ.Value
Next
J = 0
.MoveNext
Loop
End With
'ferme la connexion
ConnectCL.Close
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub
Private Sub CmdControle_Click()
Dim Nom As String
Dim I As Integer
Dim J As Integer
'on verifie que l'identifiant et le mots de passe ne sont pas vide
If (TxtUtilisateur.Value = "") Or (TxtMdeP.Value = "") Then
MsgBox "Please Enter your Username and Password ", vbOKOnly + vbExclamation
Exit Sub
End If
'dés que l'utilisateur tape son identifiant et son mots de passe on distingue 3 cas
'possible, s'il a choisi sa fonction comme manager, on fait la recherche dans le classeur data base de cette facon
If OptManager.Value Then
'récupère les valeurs dans les colonnes C et D
RecupNoms "C:D"
If TxtUtilisateur.Text = TblNom(1, 14) And TxtMdeP.Text = TblNom(2, 14) Then
Me.Hide
UserForm2.Show
Unload Me
Else
MsgBox " Username or Password is incorrect.Please try again", vbOKCancel + vbCritical + vbDefaultButton1, "Erreur"
Exit Sub
End If
End If
's'il a choisi sa fonction comme technicien la verification de mots de passe et d'identifiant sera faite de cette facon
If OptTechnicien.Value Then
RecupNoms "E:R"
'recherche le nom dans le tableau
For I = 1 To UBound(TblNom, 2)
For J = 1 To UBound(TblNom, 1)
'si trouvé
If TxtUtilisateur.Text = TblNom(J, I) Then
Nom = TblNom(J, I)
Exit For
End If
Next J
If Nom <> "" Then Exit For
Next I
'si pas trouvé, mauvais nom d'utilisateur
If Nom = "" Then
MsgBox " Username is incorrect.Please try again", vbOKCancel + vbCritical + vbDefaultButton1, "Erreur"
Exit Sub
End If
'si arrive jusqu'ici, contrôle le mot de passe
If TxtMdeP.Text = TblNom(J + 1, I) Then
Me.Hide
UserForm2.Show
Unload Me
Else
MsgBox " Password is incorrect.Please try again", vbOKCancel + vbCritical + vbDefaultButton1, "Erreur"
Exit Sub
End If
End If
' si l'utilsateur n'a pas choisi sa fonction alors un msg d'erreur
If OptManager.Value = False And OptTechnicien.Value = False Then
MsgBox "Choose your Function", vbOKOnly + vbInformation
End If
End Sub |