FAQ Access – Gruppenzugehörigkeit ermitteln
Access Netzwerk und Sicherheit- Gruppenzugehörigkeit ermitteln
Problem :
Wir setzen verschiedene Datenbanken im Arbeitsgruppenmodus ein. Für die einfachere Klärung von Zugriffsfehlern suchen wir nach einer Funktion, die uns die Gruppen auflistet, in denen der aktuell angemeldete Anwender Mitglied ist.
Problemlösung:
Dazu können Sie die folgende Funktion „UserNameGroups()“ einsetzen, die Sie in beliebiges Modul Ihrer Datenbank eingeben:
Function UserNameGroups() As String Dim ws As Workspace, aUser As User Dim I As Integer Dim strUser As String, strResult As String strUser = CurrentUser() strResult = strUser + ": " Set ws = DBEngine.Workspaces(0) On Error Resume Next Set aUser = ws.Users(strUser) If Err <> 0 Then strResult = strResult + "Nicht gefunden!" Else For I = 0 To aUser.Groups.Count - 1 strResult = strResult + aUser.Groups(I).Name + ", " Next I strResult = Left$(strResult, _ Len(strResult) - 2) 'letztes ", " raus... End If UserNameGroups = strResult End Function
Die Funktion liefert als Ergebnis den Namen bzw. den Access-Account des aktuellen Anwenders sowie eine Liste der Gruppen, denen er zugeordnet ist. Dazu bedienen wir uns der Auflistung „Groups“. Sie wird von Access für die einzelnen Anwender anhand ihres Access-Accounts geführt.
Der Zugriff auf sämtliche Auflistungen erfolgt über den aktuellen Workspace, den wir einer Variablen „ws“ zuweisen. Aus der Users-Auflistung lesen wir die Liste der Eigenschaften für den aktuellen Anwender über
ws.Users(strUser)
aus. Die Gruppen liefert dann die Auflistung „Groups“, aus der wir die Namen durch Komma und Leerzeichen getrennt als Ergebnis liefern. Die Funktion können Sie einem Textfeld in einem Formular über die Eigenschaft „Steuerelementeinhalt“ in der Form „=UserNameGroups()“ zuordnen oder die Infos im Testfenster/Direktbereich per „? UserNameGroups()“ ausgeben lassen.
Wird nun die Datenbank über dieses Symbol gestartet, so braucht der Arbeitsgruppen Administrator nicht bemüht zu werden.