Option de sécurité avec access 2000 sous dao 3.6

Contenu du snippet

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)

A voir également

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.