Benutzerabhängige Befehlsleisten

Klaus Giesen, Wuppertal

Access verfügt wie allen anderen Office-Anwendungen auch über eine Reihe Standardmenü- und Symbolleisten. Bei individuellen Datenbankanwendungen ist es jedoch für den Anwender angenehmer und auch sicherer, wenn er für eine solche Anwendung auch über benutzerdefinierte Menü- und Symbolleisten verfügt. So können beispielsweise leicht individuelle Menü- und Symbolleisten in Abhängigkeit vom angemeldeten Benutzer erstellt werden.

Zur Erstellungen eigener Menü- und Symbolleisten gibt es zwei Möglichkeiten.

Die erste Möglichkeit erfolgt über das Dialogfenster Anpassen, das Sie mit dem Menübefehl Extras/Anpassen oder durch Anklicken einer Leiste mit der rechten Maustaste und Auswahl des Eintrags Anpassen aufrufen können.

Abb. 1: Das Dialogfenster Anpassen

Auf diese Art der Erstellung beziehungsweise Bearbeitung wird in diesem Beitrag jedoch nicht näher eingegangen. Wir beschäftigen uns hier ausschließlich mit der zweiten Möglichkeit, Menü- und Symbolleisten per VBA zu erstellen. Diese Methode hat einige Vorzüge, wie beispielsweise:

  • Programmgesteuerter Aufruf
  • Situationsbedingte Steuerung
  • Bevor es losgeht, müssen Sie je nach verwendeter Access-Version die passenden Verweise erstellen.

    Verweise

    Aufgrund des gemeinsamen Objektmodells müssen Sie vor der Programmierung von Befehlsleisten in Access abhängig von der benutzten Version entsprechende Verweise in Ihrer Datenbank einstellen.

    Hinweis

    Sie können theoretisch auch komplett ohne Verweise auskommen. Wie das funktioniert und welche Vor- und Nachteile das hat, erfahren Sie im Beitrag Verwendung von Objektvariablen in der vorliegenden Ausgabe von Access im Unternehmen.

    Access 97

    In Access 97 stellen Sie einen Verweis auf die dieser Version entsprechenden Bibliothek Microsoft Office 8.0 Object Library ein. Wählen Sie dazu in der Entwurfsansicht eines Moduls aus dem Menü Extras den Befehl Verweise aus und aktivieren Sie das Kontrollkästchen vor dem entsprechenden Eintrag (s. Abb. 2).

    Access 2000

    Access 2000 erfordert einen Verweis auf die Microsoft Office 9.0 Object Library. Die Einstellung erfolgt genauso, wie eben beschrieben.

    Hinweis

    Die beiden Beispieldatenbanken zu diesem Beitrag enthalten jeweils den entsprechenden Verweis. Sie finden diese Beispieldatenbanken in den Versionen für Access 97 (Menus97.mdb) und Access 2000 (Menus00.mdb) auf der beiliegenden CD-ROM im Ordner mdb.

    Abb. 2: Das Dialogfenster Verweise in Access 97

    Abb. 3: Das Formular frmToolBarDemo_1

    Abb. 4: Befehlsleiste mit drei verschiedenen Elementen

    Dieses erste Anwendungsbeispiel erstellt eine Befehlsleiste mit verschiedenen Elementen. Einige dieser Elemente führen dann Aktionen aus, so wie Sie es von Ihrer täglichen Arbeit mit Befehlsleisten her gewohnt sind. Ausgangspunkt ist das Formular frmToolBarDemo_1 der Beispieldatenbank (s. Abb. 3).

    Ein Klick auf die Schaltfläche btnCreateToolBar erstellt eine Befehlsleiste mit drei verschiedenen Elementen (s. Abb. 4):

  • Schaltfläche
  • Kombinationsfeld
  • Menü
  • Die dabei ausgeführte Ereignisprozedur kann hier nur auszugsweise besprochen werden. Sie finden den vollständigen Code im Klassenmodul des Formulars in der Beispieldatenbank.

    Befehlsleiste erstellen

    Der in Quellcode 1 abgedruckte Code legt die neue Befehlsleiste Test Toolbar an und verankert diese links oben.

    Schaltfläche erstellen

    In der Befehlsleiste wird eine Schaltfläche (msoControlButton) erstellt (s. Quellcode 2).

    Die Zuweisung des angezeigten Schaltflächensymbols erfolgt über die Eigenschaft FaceID.

    Der Klick auf eine Schaltfläche sollte natürlich irgendeine Aktion hervorrufen. Dies erfolgt mit der Eigenschaft OnAction, die bei diesem Beispiel das Makro macAttention ausführt.

    Kombinationsfeld erstellen

    Das nächste Objekt in der Befehlsleiste ist ein Kombinationsfeld (s. Quellcode 3).

    Set CmdBar = Application.CommandBars.Add(Name:= _  "Test Toolbar", Position:=msoBarTop, temporary:=False)
    CmdBar.Enabled = True
    CmdBar.Visible = True

    Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

    Workplace

    Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar