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
|
Option Compare Database
Option Explicit
Global User_groupe As String
Global User_id As String
Global User_passe As String
Sub droit_acces()
'-----------déclration des variables-------
Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte
Dim MonSQL1 As String
Dim sql1 As String
Dim rs1 As DAO.Recordset
Dim bloque As String
Dim bloque1 As String
Dim MonSQL As String
If Forms!mot_de_passe!nom_passe <> "" And Forms!mot_de_passe!passe <> "" Then
sql1 = "SELECT probleme, Activer FROM initiateur WHERE identifiant = '" & Forms!mot_de_passe!nom_passe & "';"
Set rs1 = CurrentDb.OpenRecordset(sql1)
If Not rs1.EOF Then
bloque = rs1("probleme").Value
bloque1 = rs1("Activer").Value
If bloque = "stop" Or bloque1 = "Faux" Then
MsgBox "Votre application est bloquée, veuillez contacter l'administrateur !!!"
MonSQL1 = "INSERT INTO gestion_acces (user,date_connect,message) VALUES ('" & Forms!mot_de_passe!nom_passe & "','" & Now() & "','Compte bloqué ou désactivé.');"
Debug.Print MonSQL1
CurrentDb.Execute MonSQL1, dbFailOnError
Else
' requete qui récupère les chams de la table utilisateurs
sql = "SELECT * FROM initiateur WHERE identifiant = '" & Forms!mot_de_passe!nom_passe & "' AND passe ='" & Forms!mot_de_passe!passe & "';"
Set rs = CurrentDb.OpenRecordset(sql)
' si le nom et le mot de passe sont corrects
If Not rs.EOF Then
' ouverture de l'application
User_id = rs("identifiant").Value
User_groupe = rs("droit").Value
User_passe = rs("passe").Value
DoCmd.OpenForm "Switchboard", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "mot_de_passe"
Else
' sinon message d'erreur
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
'--------------- audit trail ------------------------------
MonSQL1 = "INSERT INTO gestion_acces (user,date_connect,message) VALUES ('" & Forms!mot_de_passe!nom_passe & "','" & Now() & "','Identifiant ou mot de passe incorrect.');"
Debug.Print MonSQL1
CurrentDb.Execute MonSQL1, dbFailOnError
End If
End If
Else
' sinon message d'erreur
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
'--------------- audit trail ------------------------------
MonSQL1 = "INSERT INTO gestion_acces (user,date_connect,message) VALUES ('" & Forms!mot_de_passe!nom_passe & "','" & Now() & "','Identifiant ou mot de passe incorrect.');"
Debug.Print MonSQL1
CurrentDb.Execute MonSQL1, dbFailOnError
End If
' au bout de trois erreurs l'application se ferme
If i = 3 Then
'------------- audit trail ----------------------------------
MonSQL1 = "INSERT INTO gestion_acces (user,date_connect,message) VALUES ('" & Forms!mot_de_passe!nom_passe & "','" & Now() & "','Identifiant ou mot de passe incorrect.Trois essais.');"
Debug.Print MonSQL1
CurrentDb.Execute MonSQL1, dbFailOnError
MsgBox "Vous avez dépassé le nombre de tentatives autorisés.Votre application est bloquée, veuillez contacter l'administrateur !!!", vbCritical
'blocage de l'application
MonSQL = "Update initiateur set probleme ='stop' where identifiant = '" & Forms!mot_de_passe!nom_passe & "';"
Debug.Print MonSQL
CurrentDb.Execute MonSQL, dbFailOnError
DoCmd.Quit
End If
Else
MsgBox "Veuillez saisir votre identifiant et votre mot de passe !!!"
End If
End Sub |
Partager