Kontextmenüs

Autor: Martin Hoffmann, Düsseldorf

Kontextmenüs sind Menüs, die per Rechtsklick auf ein bestimmtes Objekt geöffnet werden können und Befehle anbieten, die speziell für das gewünschte Objekt vorgesehen sind. Access bietet wie jede andere Officeanwendung die Möglichkeit, solche Kontextmenüs in eigene Anwendungen einzubauen. Im vorliegenden Beitrag erfahren Sie, wie Sie ein solches Kontextmenü erstellen und mit Funktionalität versehen und wie Sie diese wieder entfernen können.

Hinweis

Die im vorliegenden Beitrag vorgestellten Beispiele finden Sie auf der Heft-CD in der Beispieldatenbank zum Beitrag Literaturverwaltung, dessen zweiten Teil Sie ebenfalls in diesem Heft finden.

Der Vorteil von Kontextmenüs besteht in ihrer Funktion, immer nur die Aktionen zu einem Objekt anzuzeigen, die mit diesem Objekt durchgeführt werden können. Auf diese Weise braucht der Anwender nicht lange nachzudenken, welche Aktionen für das Objekt gerade gültig sind. Sie finden Kontextmenüs deshalb in Windows selbst und in jeder Anwendung wieder.

Bild 1: Kontextmenü eines Listenfeldes

Bevor Sie mit der Erstellung von Kontextmenüs beginnen, müssen Sie sich überlegen, wo Sie diese einsetzen möchten und wie Sie die Aktionen des Kontextmenüs gestalten.

Einsatzmöglichkeiten

Generell können Sie für jedes Steuerelement in einem Formular ein eigenes Kontextmenü anlegen. Dazu bieten die Steuerelemente die Eigenschaft Kontextmenüleiste an. In dieser Eigenschaft werden alle verfügbaren, individuell erstellten Kontextmenüs aufgelistet, sodass Sie einfach eines auswählen können. Wenn Sie anschließend im Formular mit der rechten Maustaste auf das Steuerelement klicken, öffnet Access das Kontextmenü (siehe Bild 1).

Sie können Kontextmenüs auch auf Formular- oder Berichtsebene einsetzen. Verwenden Sie dazu die gleiche Eigenschaft wie bei den Steuerelementen. Das Kontextmenü erscheint, sobald Sie an einer beliebigen Stelle auf das Formular bzw. den Bericht klicken.

Bei Formularen können Sie zusätzlich über die Eigenschaft Kontextmenü definieren, ob generell in diesem Formular ein Kontextmenü angezeigt werden soll.

''Formular öffnen
DoCmd.OpenForm "frmLiteraturliste"
''Formular-Kontextmenü zuweisen
Forms!frmLiteraturliste.ShortcutMenuBar = "scmenLiteraturliste"
''Listenfeld-Kontextmenü zuweisen
Forms!frmLiteraturliste!lstPositionen.ShortcutMenuBar = "scmenListenpositionen"

Quellcode 1

''Formular versteckt öffnen
DoCmd.OpenForm "frmLiteraturliste", acDesign, , , , acHidden
''Formular-Kontextmenü zuweisen
Forms!frmLiteraturliste.ShortcutMenuBar = "KontextmenüListenpositionen"
''Listenfeld-Kontextmenü zuweisen
Forms!frmLiteraturliste!lstPositionen.ShortcutMenuBar = "KontextmenüListenpositionen"
DoCmd.Save acForm, "frmLiteraturliste"
DoCmd.OpenForm "frmLiteraturliste", acNormal

Quellcode 2

Auf oberster Ebene können Sie der kompletten Datenbank ein Standard-Kontextmenü zuweisen, das dann überall dort verwendet wird, wo kein individuelles Kontextmenü vorhanden ist.

Um ein Kontextmenü für die Datenbank einzustellen, wählen Sie den Menübefehl Extras/Start. Im Dialog Start können Sie dann über das Kombinationsfeld Kontextmenüleiste die entsprechende Symbolleiste auswählen.

Zuweisung per VBA

Wenn Sie einem Objekt ein Kontextmenü mittels VBA temporär zuweisen möchten, verwenden Sie die Eigenschaft ShortcutMenuBar. Als Beispiel soll Quellcode 1 dienen, mit dem einem Formular und einem Listenfeld jeweils ein Kontextmenü zugewiesen wird.

Sobald Sie das Formular schließen, sind die per VBA gemachten Einstellungen wieder aufgehoben. Soll die zugewiesene Kontextmenüleiste dauerhaft gespeichert werden, müssen Sie das Formular in der Entwurfsansicht öffnen, die Eigenschaft einstellen und das Formular über die Anweisung DoCmd.Save speichern. Im Beispiel (s. Quellcode 2) wird das Formular versteckt geöffnet, sodass für den Benutzer die änderungen nicht sichtbar sind.

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

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar