Quelques routines qui permettent de gérer la sécurité sous access 2000.
(Non tester avec les autres version)
Source / Exemple :
' Variable globale
Private dbWorkspace As Workspace
Private dbDatabase As Database
Private dbTable As Recordset
' Changement de mot de passe
Private Sub cmdChangerMotDePasse_Click()
Dim strOldPassword As String
Dim strNewPassword As String
Set dbNameUser = dbWorkspace.Users(cmbNameUser.Text)
strOldPassword = InputBox("Ancien mot de passe")
strNewPassword = InputBox("Nouveau mot de passe")
dbNameUser.NewPassword strOldPassword, strNewPassword
End Sub
' Créer un groupe utilisateur
Private Sub cmdCreerGroupe_Click()
Dim cg_GroupName As String
Dim cg_GroupPID As String
Dim cg_NewGroup As Group
cg_GroupName = InputBox("Nom du groupe")
cg_GroupPID = InputBox("Identifications")
Set cg_NewGroup = dbWorkspace.CreateGroup(cg_GroupName, cg_GroupPID)
dbWorkspace.Groups.Append cg_NewGroup
End Sub
'Créer un utilisateur
Private Sub cmdCreerUtilisateur_Click()
Dim cu_UserName As String
Dim cu_UserPID As String
Dim cu_UserPW As String
Dim cu_NewUser As User
cu_UserName = InputBox("Nom de l'utilisateur")
cu_UserPID = InputBox("Identification")
cu_UserPW = InputBox("Mot de passe")
Set cu_NewUser = dbWorkspace.CreateUser(cu_UserName, cu_UserPID, cu_UserPW)
dbWorkspace.Users.Append cu_NewUser
cu_NewUser.Groups.Append dbWorkspace.CreateGroup("Users")
End Sub
' Voir utilisateur dans group
Private Sub cmdListeUtilisateurEtGroupe_Click()
For Each dbNameUser In dbWorkspace.Users
Debug.Print dbNameUser.Name
For Each dbGroupName In dbNameUser.Groups
Debug.Print " " & dbGroupName.Name
Next
Next
End Sub
' Supprimer un groupe
Private Sub cmdSupprimerGroupe_Click()
dbWorkspace.Groups.Delete "NomDuGroupe"
End Sub
' Supprimer utilisateur
Private Sub cmdSupprimerUtilisateur_Click()
dbWorkspace.Users.Delete "NomUtilisateur"
End Sub
' Supprimer un utilisateur d'un groupe
Private Sub cmdSupprimerUtilisateurDuGroupe_Click()
Dim GName As String
Set dbNameUser = dbWorkspace.Users("NomUtilisateur)
On Error Resume Next
GName = dbNameUser("NomDuGroupe").Name
If GName = "NomDuGroupe" Then
dbNameUser.Groups.Delete "NomDuGroupe" Else
MsgBox "L'utilisateur " & "NomUtilisateur" & " n'existe pas dans ce groupe", vbOKOnly + vbCritical, "Erreur !"
End If
End Sub
' Dans le load
Private Sub Form_Load()
DBEngine.SystemDB = App.Path & "\FichierSecuriter.mdw"
Set dbWorkspace = DBEngine.CreateWorkspace("", "Utilisateur", "MotDePasse", dbUseJet)
Set dbDatabase = dbWorkspace.OpenDatabase(App.Path & "\BaseAControler.mdb", , , "Utilisateur")
End Sub
Conclusion :
Simple, non ?
PS : Attention ne pas oublier que DAO va être abandonner par Microsoft et qu'il n'y aura pas de compatibilité. (A ma connaissance)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.