Créer un formulaire modal avec un champ user et un champ mot de passe (indépendants) et un bouton valider
Private Sub ButtOK_Click()
Dim mabase As Database
Dim marec As Recordset
Dim marec2 As Recordset
Set mabase = CurrentDb
Set marec = mabase.OpenRecordset("SELECT * FROM T_Utilisateur", DB_OPEN_SNAPSHOT)
' envoie dans le jeu d'enrts le contenu de la req sql, le tout en lecture seule)
Do While Not marec.EOF
If marec(1) = user.Value And marec(2) = password.Value Then
resultat.Visible = True
resultat.Caption = "Identification réussie"
Set marec2 = mabase.OpenRecordset("SELECT * FROM T_HISTORIQUE", dbOpenDynaset)
marec2.AddNew 'va à la ligne nouvel enregistrement
marec2(1) = user.Value & "s'est connecté" 'colonne 2 de la table
marec2(2) = "connection réussie" 'colonne 3 de la table
marec2(3) = Now() 'colonne 4 de la table
marec2.Update 'met à jour l'enregistrement, le confirme...
Exit Sub
Else
marec.MoveNext
End If
Loop
resultat.Visible = True
resultat.Caption = "Identification erronée, recommencez !"
password.Value = ""
user.SetFocus
'on veut écrire dans l'historique
' on ouvre le jeu d'enregistrement en lecture / écriture
Set marec2 = mabase.OpenRecordset("SELECT * FROM T_HISTORIQUE", dbOpenDynaset)
marec2.AddNew 'va à la ligne nouvel enregistrement
marec2(1) = "une personne non identifiée a pris le user :" & user.Value 'colonne 2 de la table
marec2(2) = "tentative connection" 'colonne 3 de la table
marec2(3) = Now() 'colonne 4 de la table
marec2.Update 'met à jour l'enregistrement, le confirme...
End Sub
Pour vider la table historique régulièrement
Private Sub Form_Open(Cancel As Integer)
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM T_Historique WHERE [T_Historique].[Date]<=Now()-1"
DoCmd.SetWarnings True
End Sub