Kontextmenüs in modalen Dialogen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Kontextmenüs sind erstklassige Helfer, wenn man an Ort und Stelle Funktionen zur Verfügung stellen möchte. Kontextmenüs lassen sich auch in modalen Dialogen anzeigen. Auf merkwürdige Weise funktionieren diese aber nicht mehr, das heißt, die angegebene VBA-Funktion wird nicht mehr ausgeführt. Dieser Beitrag zeigt, wie Sie auch die Kontextmenübefehle in modalen Dialogen mit Leben füllen.

Beispielformulare

Die Beispieldatenbank zu diesem Beitrag enthält zwei Formulare. Das erste heißt frmModalenDialogOeffnen und enthält zwei Schaltflächen, mit denen das zweite Formular der Anwendung, frmModalerDialog, einmal als herkömmliches Formular und einmal als modaler Dialog geöffnet werden kann.

Das Formular frmModalenDialog-Oeffnen sieht wie in Bild 1 aus. Die obere Schaltfläche heißt cmdFormularNichtModalOeffnen und löst die Prozedur aus Listing 1 aus.

Formular zum Aufrufen des zweiten Formulars in verschiedenen Modi

Bild 1: Formular zum Aufrufen des zweiten Formulars in verschiedenen Modi

Diese öffnet das Formular frmModalerDialog auf herkömmliche Weise. Dieses sieht dann wie in Bild 2 aus.

Formular mit zwei Schaltflächen zum Anzeigen von Kontextmenüs

Bild 2: Formular mit zwei Schaltflächen zum Anzeigen von Kontextmenüs

Wenn der Benutzer auf die beiden Schaltflächen klickt, erscheint jeweils ein Kontextmenü mit einem einzigen Befehl (s. Bild 3).

Durch die obere Schaltfläche hervorgerufenes Kontextmenü

Bild 3: Durch die obere Schaltfläche hervorgerufenes Kontextmenü

Dafür sorgt die Ereignisprozedur aus Listing 2. Die Prozedur deklariert ein CommandBar– und ein CommandBarButton-Objekt. Das CommandBar-Objekt repräsentiert das Kontextmenü, das CommandBarButton-Objekt die enthaltene Schaltfläche. Da das Kontextmenü namens cbrModal bei jedem Mausklick neu erzeugt werden soll, löscht die Prozedur ein eventuell bereits vorhandenes Kontextmenü gleichen Namens zu Beginn der Prozedur. Dann erstellt diese das Kontextmenü neu, wobei dieses per msoBarPopup als Kontextmenü angelegt wird, und referenziert es mit der Variablen cbr. Für die Auflistung Controls dieser Variablen legt die Prozedur dann mit der Add-Methode eine neue Schaltfläche an, welche dem Eintrag des Kontextmenüs mit der Beschriftung Meldung anzeigen entspricht. Damit diese beim Anklicken eine Funktion auslöst, geben Sie für die Eigenschaft OnAction den Namen der auszuführenden VBA-Funktion an – in diesem Fall heißt diese Kontextmenüfunktion und sieht wie folgt aus:


Nur für Abonnenten

Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.

Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.

So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.

Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.

Bereits Abonnent? Hier einloggen


Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →

Schreibe einen Kommentar