diesem und diesem Artikel erwähnt, kann man auch in Access 2007 Benutzer und Gruppen verwalten und zumindest Tabellen einer Datenbank schützen. Doof ist nur, dass man dazu per VBA auf die entsprechenden User- und Group-Elemente der DAO-Bibliothek zugreifen oder sich selbst ein Administrationstool bauen muss. Oder kann man etwa doch noch die passenden Dialoge älterer Access-Versionen einsetzen?" />diesem und diesem Artikel erwähnt, kann man auch in Access 2007 Benutzer und Gruppen verwalten und zumindest Tabellen einer Datenbank schützen. Doof ist nur, dass man dazu per VBA auf die entsprechenden User- und Group-Elemente der DAO-Bibliothek zugreifen oder sich selbst ein Administrationstool bauen muss. Oder kann man etwa doch noch die passenden Dialoge älterer Access-Versionen einsetzen?" /> www.access-im-unternehmen.de - Musterlösungen, Know-how und Tipps & Tricks für Microsoft Access
Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Benutzer und Berechtigungen in Access 2007 verwalten

Wie bereits in diesem und diesem Artikel erwähnt, kann man auch in Access 2007 Benutzer und Gruppen verwalten und zumindest Tabellen einer Datenbank schützen. Doof ist nur, dass man dazu per VBA auf die entsprechenden User- und Group-Elemente der DAO-Bibliothek zugreifen oder sich selbst ein Administrationstool bauen muss. Oder kann man etwa doch noch die passenden Dialoge älterer Access-Versionen einsetzen?

Beispieldatenbank

Die in diesem Download verfügbare Beispieldatenbank ist ein Add-In, dass Sie als Menü-Add-In in Access verfügbar machen können.

Problem

Berechtigungen auf Tabellenebene lassen sich auch unter Access 2007 noch einrichten, allerdings stehen die beiden zum Verwalten von Benutzern, Benutzergruppen und Berechtigungen benötigten Dialoge nicht mehr zur Verfügung. Eingebaut sind diese wohl noch, denn wenn man unter Access 2007 eine .mdb-Datei öffnet, kann man die Dialoge noch über das Ribbon öffnen:

Abbildung 1: Die Dialoge zum Verwalten von Benutzern und Co. sind in Access 2007 grundsätzlich noch vorhanden.

Öffnet man jedoch einen .accdb-Datenbank, verschwinden diese Einträge. Die nächste Idee wäre, die DoCmd.RunCmd-Methode mit den für den Aufruf notwendigen Konstanten zu verwenden:

DoCmd.RunCommand acCmdUserAndGroupAccounts

DoCmd.RunCommand acCmdUserAndGroupPermissions

Leider führen die Aufrufe dieser Methoden einheitlich zum Fehler 2046, "Der Befehl oder die Aktion ... ist zurzeit nicht verfügbar."

Lösung

Die obigen Informationen kann man allerdings zur Lösung zusammensetzen - vielen Dank an dieser Stelle für die Anregung aus dem MS-Office-Forum: Die Dialoge sind in .mdb-Dateien verfügbar, aber nicht in .accdb-Dateien. Also behilft man sich einer in die .accdb-Datei integrierten .mdb-Datei, um auf die speziell für ältere Versionen zugeschnittenen Methoden zuzugreifen. Dies funktioniert durch einen Verweis auf eine .mdb in der aktuellen Datenbank oder, anwendungsübergreifend, durch das Einbinden einer .mdb-Datei als Add-In in Access 2007.

In beiden Fällen braucht man eine öffentliche Funktion beispielsweise mit folgendem Aussehen:

Public Function Sicherheit()

    DoCmd.OpenForm "frmSicherheit", WindowMode:=acDialog

End Function

Das dadurch geöffnete Formular enthält die für das Anzeigen der Dialoge nötigen Schaltflächen, welche die oben genannten DoCmd.RunCommand-Befehle aufrufen.

Ein Formular muss man zwischenschalten, weil Access offensichtlich den Kontext zur aktuellen .accdb-Datenbank herstellen kann.

Den übrigen Aufbau können Sie der Beispieldatenbank entnehmen.

Das Add-In registrieren Sie in Access, indem Sie unter Datenbanktools/Add-Ins/Add-In-Manager den Speicherort des Add-Ins angeben. Anschließend können Sie es unter Datenbanktools/Add-Ins/Sicherheit aufrufen.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.