| auteur : |
Pour modifier le mot de passe d'un utilisateur il faut appeler la méthode
ChangePassword de l'objet User correspondant.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Sub ChangerMotPasseUtilisateurADO(strNomUtilisateur As String, _
strAncienMotPasse As String, strNouveauMotPasse As String)
On Error GoTo err
Dim oCat As ADOX.Catalog
Dim oUsr As ADOX.User
Dim strMessageErreur As String
Set oCat = New ADOX.Catalog
oCat.ActiveConnection = CurrentProject.Connection
Set oUsr = oCat.Users(strNomUtilisateur)
oUsr.ChangePassword strAncienMotPasse, strNouveauMotPasse
fin:
Exit Sub
err:
Select Case err.Number
Case 3265
strMessageErreur = "Cet utilisateur n'existe pas"
Case Else
strMessageErreur = "Mot de passe incorrect"
End Select
MsgBox strMessageErreur, vbCritical, "Erreur"
Resume fin
End Sub |
Exemple d'utilisation :
ChangerMotPasseUtilisateurADO "Utilisateur_toto", "ancien", "nouveau" |
|
| auteur : |
Pour modifier le mot de passe de l'utilisateur courant il faut appeler la méthode
NewPassword de l'objet User correspondant.
Deux possiblités :
- Utiliser la méthode permettant de changer le mot de passe de n'importe quel utilisateur en lui passant comme paramètre le nom de l'utilisateur courant
- Tout réécrire
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Possibilité 1 :
Public Sub ChangerMotPasseUtilisateurADO(strNomUtilisateur As String, _
strAncienMotPasse As String, strNouveauMotPasse As String)
On Error GoTo err
Dim oCat As ADOX.Catalog
Dim oUsr As ADOX.User
Dim strMessageErreur As String
Set oCat = New ADOX.Catalog
oCat.ActiveConnection = CurrentProject.Connection
Set oUsr = oCat.Users(strNomUtilisateur)
oUsr.ChangePassword strAncienMotPasse, strNouveauMotPasse
fin:
Exit Sub
err:
Select Case err.Number
Case 3265
strMessageErreur = "Cet utilisateur n'existe pas"
Case Else
strMessageErreur = "Mot de passe incorrect"
End Select
MsgBox strMessageErreur, vbCritical, "Erreur"
Resume fin
End Sub
Public Sub ChangerMotPasseUtilisateurCourantADO _
(strAncien As String, strNouveau As String)
ChangerMotPasseUtilisateurADO CurrentProject.Connection.Properties("User Name"), _
strAncien, strNouveau
End Sub |
Possibilité 2 :
Public Sub ChangerMotPasseUtilisateurCourantADO _
(strAncienMotPasse As String, strNouveauMotPasse As String)
On Error GoTo err
Dim oCat As ADOX.Catalog
Dim oUsr As ADOX.User
Dim oCnx As ADODB.Connection
Dim strMessageErreur As String
Set oCnx = CurrentProject.Connection
Set oCat = New ADOX.Catalog
oCat.ActiveConnection = oCnx
Set oUsr = oCat.Users(oCnx.Properties("User Name").Value)
oUsr.ChangePassword strAncienMotPasse, strNouveauMotPasse
fin:
Exit Sub
err:
MsgBox "Mot de passe incorrect", vbCritical, "Erreur"
Resume fin
End Sub |
Dans tous les cas, l'utilisation se fera ainsi :
ChangerMotPasseUtilisateurCourantADO "ancien", "nouveau" |
L'avantage de la première méthode est d'être plus générique et de permettre de modifier le mot de passe
d'autres utilisateurs, toutefois, si vous n'avez pas ce besoin, la seconde sera suffisante.
|
| auteur : |
Voici un exemple de création d'un nouveau groupe à l'aide de la méthode Append Nom du groupe de la collection Groups.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Sub CreerGroupeADO()
Dim oCat As ADOX.Catalog
Set oCat = New ADOX.Catalog
Set oCat.ActiveConnection = CurrentProject.Connection
With oCat
.Groups.Append "Groupe_Test"
End With
End Sub |
|
| auteur : |
Voici un exemple de création d'un nouvel utilisateur ainsi que l'assignation de ce dernier à un groupe.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Sub CreerUtilisateurADO()
Dim oCat As ADOX.Catalog
Dim oUsr As ADOX.User
Dim strNom As String
Dim strPasse As String
strNom = "Utilisateur1000"
strPasse = "password"
Set oCat = New ADOX.Catalog
With oCat
Set .ActiveConnection = CurrentProject.Connection
.Users.Append strNom, strPasse
.Groups("Admins").Users.Append strNom
End With
End Sub |
L'utilisateur est d'abord créé puis ajouté au groupe administrateur.
|
| auteur : |
Voici un exmple de procédure permettant d'afficher les noms des groupes auxquels appartient l'utilisateur passé en paramètre.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Sub ListerGroupeUtilisateurADO(strNomUtilisateur As String)
On Error GoTo err
Dim oCat As ADOX.Catalog
Dim oGrp As ADOX.Group
Dim oUsr As ADOX.User
Dim strMessageErreur as String
Set oCat = New ADOX.Catalog
Set oCat.ActiveConnection = CurrentProject.Connection
Set oUsr = oCat.Users(strNomUtilisateur)
For Each oGrp In oUsr.Groups
MsgBox oGrp.Name
Next oGrp
fin:
Exit Sub
err:
Select Case err.Number
Case 3265
strMessageErreur = "Cet utilisateur n'existe pas"
Case Else
strMessageErreur = "Erreur inconnue"
End Select
MsgBox strMessageErreur, vbCritical, "Erreur"
Resume fin
End Sub |
Exemple d'utilisation :
ListerGroupeUtilisateurADO "Utilisateur1000" |
|
| auteur : |
Voici un exmple de procédure permettant d'afficher les noms des utilisateurs appartenant au groupe passé en paramètre.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Sub ListerUtilisateurDansGroupeADO(strNomGroupe As String)
On Error GoTo err
Dim oCat As ADOX.Catalog
Dim oGrp As ADOX.Group
Dim oUsr As ADOX.User
Dim strMessageErreur as String
Set oCat = New ADOX.Catalog
Set oCat.ActiveConnection = CurrentProject.Connection
Set oGrp = oCat.Groups(strNomGroupe)
For Each oUsr In oGrp.Users
MsgBox oUsr.Name
Next oUsr
fin:
Exit Sub
err:
Select Case err.Number
Case 3265
strMessageErreur = "Ce groupe n'existe pas"
Case Else
strMessageErreur = "Erreur inconnue"
End Select
MsgBox strMessageErreur, vbCritical, "Erreur"
Resume fin
End Sub |
Exemple d'utilisation :
ListerUtilisateurDansGroupeADO "Admins" |
|
| auteur : |
Pour obtenir le nom de l'utilisateur courant (celui qui a ouvert la base de
données), il faut interroger la propriété User Name de la connexion à la base de données.
Cette propriété est disponible depuis la collection Propertiesde l'objet Connection.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Function ObtenirNomUtilisateurADO() As String
Dim oCnx As ADODB.Connection
Set oCnx = CurrentProject.Connection
ObtenirNomUtilisateurADO = oCnx.Properties("User Name")
End Function |
Exemple d'utilisation :
MsgBox ObtenirNomUtilisateurADO() |
|
| auteur : |
Le plus simple pour vérifier si un groupe existe ou pas est de tenter d'y accéder et de gérer l'erreur en cas d'echec.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Function TesterExistenceGroupeADO _
(strNomGroupe As String) As Boolean
On Error GoTo err
Dim oCat As ADOX.Catalog
Dim oGrp As ADOX.Group
Set oCat = New ADOX.Catalog
oCat.ActiveConnection = CurrentProject.Connection
Set oGrp = oCat.Groups(strNomGroupe)
TesterExistenceGroupeADO = True
err:
End Function |
Exemple d'utilisation :
MsgBox TesterExistenceGroupADO("Admins") |
|
| auteur : |
Le plus simple pour vérifier si un utilisateur existe ou pas est de tenter d'y accéder et de gérer l'erreur en cas d'echec.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Function TesterExistenceUtilisateurADO _
(strNomUtilisateur As String) As Boolean
On Error GoTo err
Dim oCat As ADOX.Catalog
Dim oUsr As ADOX.User
Set oCat = New ADOX.Catalog
oCat.ActiveConnection = CurrentProject.Connection
Set oUsr = oCat.Users(strNomUtilisateur)
TesterExistenceUtilisateurADO = True
err:
End Function |
Exemple d'utilisation :
MsgBox TesterExistenceUtilisateurADO("Admin") |
|
| auteur : |
Le plus simple pour vérifier si un utilisateur appartient à un groupe est de tenter
d'accéder à celui-ci depuis l'objet Group recherché.
Important : Pour que ce code fonctionne vous devez ajouter la référence
Microsoft ADO Ext 2.X for DDL and Security.
Public Function TesterUtilisateurDansGroupeADO _
(strNomUtilisateur As String, _
strNomGroupe As String) As Boolean
On Error GoTo err
Dim oCat As ADOX.Catalog
Dim oUsr As ADOX.User
Set oCat = New ADOX.Catalog
oCat.ActiveConnection = CurrentProject.Connection
Set oUsr = oCat.Groups(strNomGroupe).Users(strNomUtilisateur)
TesterUtilisateurDansGroupeADO = True
err:
End Function |
La fonction retourne Vrai si l'utilisateur strNomUtilisateur appartient
au groupe nommé strNomGroupe.
Exemple d'utilisation :
MsgBox TesterUtilisateurDansGroupeADO("Utilisateur1000", "Admins") |
|
Consultez les autres F.A.Q's
|
|