Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
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.
Bild 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:
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 (siehe Bild 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.
Bild 2: Das Dialogfenster Verweise in Access 97
Bild 3: Das Formular frmToolBarDemo_1
Bild 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 (siehe Bild 3).
Ein Klick auf die Schaltfläche btnCreateToolBar erstellt eine Befehlsleiste mit drei verschiedenen Elementen (siehe Bild 4):
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
Quellcode 1
Set cmdBtn = CmdBar.Controls.Add(Type:=msoControlButton) With cmdBtn .Style = msoButtonIcon .FaceId = 352 .Caption = "Achtung" .Style = msoButtonIconAndCaption .Tag = "Test Button" .OnAction = "macAttention" End With
Quellcode 2
Set cmdComboBox = _ CmdBar.Controls.Add(msoControlComboBox) With cmdComboBox .AddItem "Torwart", 1 .AddItem "Libero", 2 .AddItem "Abwehr", 3 .AddItem "Mittelfeld", 4 .AddItem "Angriff", 5 .Caption = "Auswahl Position" .Tag = "Test Combo Box" .OnAction = "SavePosition" .Style = msoComboLabel .DropDownLines = 8 .DropDownWidth = 75 End With
Quellcode 3
Set cmdPopUp = mdBar.Controls.Add(Type:=msoControlPopup) With cmdPopUp .Caption = "&Besprechung festlegen" .Tag = "Test PopUp" Set cmdBtn1 = _ Controls.Add(Type:=msoControlButton) With cmdBtn1 .Caption = "&Heute" .OnAction = "FestlegenHeute" .Style = msoButtonCaption End With
Quellcode 4 (Teil 1)
Die Listeneinträge werden bei diesem Beispiel dynamisch erzeugt und die Eigenschaft OnAction ruft eine Funktion auf.
Menü erstellen
Zum Abschluss kommen wir doch noch zu einem richtigen Menü in unserer Befehlsleiste (s. Quellcode 4).
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo