Bonjour,
Je suis en train de créer un outil (Access lié avec Excel) et je dois mettre en place une gestion des droits utilisateurs. J'ai vu qu'il y avait un add-in Access qui pemettait de le faire mais je trouve ca assez pénible car les droits sont ouverts par table et/ou requête, ce qui m'oblige à créer une multitude de table/requête.
J'ai opté pour une solution de contournement en déportant cette gestion de droits admin dans Excel (lieux de lancement des requêtes via ADODB). Je vais monter des listes en cascade en fonction du username windows.
Pour ce faire j'ai trouvé la macro, enfin la fonction suivante. Je précise car ma question est comment faire en sorte qu'elle se lance à chaque ouverture de fichier (avec une macro c'est simple il suffit d'ajouter Workbook_Open() ) mais là j'avoue sécher (je suis loin d'être bon en VBA)
Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Function UserName() As String
Dim sName As String * 256
Dim cChars As Long
cChars = 256
If GetUserName(sName, cChars) Then
UserName = Left$(sName, cChars - 1)
End If
End Function
Merci à tous pour vos réponses.
Cdt
Je suis en train de créer un outil (Access lié avec Excel) et je dois mettre en place une gestion des droits utilisateurs. J'ai vu qu'il y avait un add-in Access qui pemettait de le faire mais je trouve ca assez pénible car les droits sont ouverts par table et/ou requête, ce qui m'oblige à créer une multitude de table/requête.
J'ai opté pour une solution de contournement en déportant cette gestion de droits admin dans Excel (lieux de lancement des requêtes via ADODB). Je vais monter des listes en cascade en fonction du username windows.
Pour ce faire j'ai trouvé la macro, enfin la fonction suivante. Je précise car ma question est comment faire en sorte qu'elle se lance à chaque ouverture de fichier (avec une macro c'est simple il suffit d'ajouter Workbook_Open() ) mais là j'avoue sécher (je suis loin d'être bon en VBA)
Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Function UserName() As String
Dim sName As String * 256
Dim cChars As Long
cChars = 256
If GetUserName(sName, cChars) Then
UserName = Left$(sName, cChars - 1)
End If
End Function
Merci à tous pour vos réponses.
Cdt
Dernière édition: