Kontextmenüs in modalen Dialogen

Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

Kontextmenüs in modalen Dialogen

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:

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Neues aus unseren Magazinen
Listenfeld: Reihenfolge mehrerer Einträge...

Wir haben bereits in mehreren Beiträgen beschrieben, wie Sie die individuelle Reihenfolge von Elementen einer Tabelle über den Inhalt eines Feldes etwa namens »ReihenfolgeID« einstellen können –... [mehr]

Diagramme mit gefilterten Daten

In Ausgabe 2/2019 haben wir in zwei Artikeln die modernen Diagramme von Access vorgestellt. Im vorliegenen Beitrag zeigen wir Ihnen, wie Sie diese abhängig von den in einem Formular angezeigten... [mehr]

Benutzerverwaltung mit verschlüsselten...

Wenn Sie in einer Access-Anwendung Benutzer verwalten wollen, die sich per Benutzername und Kennwort an die Anwendung anmelden, sollten Sie sehr sensibel mit den in der Anwendung gespeicherten... [mehr]

HTML-Tabellen mit fester Kopfzeile

In den vorherigen Ausgaben von Access im Unternehmen und in der aktuellen Ausgabe arbeiten wir in einigen Beiträgen mit dem Webbrowser-Steuerelement und stellen Daten, die wir mit den Bordmitteln... [mehr]

Flexible HTML-Tabellen mit fester Kopfzeile

Im Beitrag »HTML-Tabellen mit fester Kopfzeile« haben wir gezeigt, wie Sie Daten aus einer bestimmten Abfrage in einem Webbrowser-Steuerelement so anzeigen, dass die Spaltenköpfe oben fixiert... [mehr]

Berechtigungen per HTML verwalten

Im Beitrag »Benutzerverwaltung mit verschlüsselten Kennwörtern« stellen wir eine Lösung vor, in der wir die Berechtigungen von Benutzergruppen an Datenbankobjekten definieren. Dort benötigen wir... [mehr]

Benutzer und Berechtigungen ermitteln

In den Beiträgen »Benutzerverwaltung mit verschlüsselten Kennwörtern« und »Berechtigungen per HTML verwalten« haben wir die Voraussetzungen für eine Benutzerverwaltung geschaffen. Im vorliegenden... [mehr]

Zugriffsrechte mit Datenmakros

Es gibt verschiedene Möglichkeiten, auf Basis des aktuell angemeldeten Benutzers sicherzustellen, dass dieser nur die für ihn vorgesehenen Aktionen mit Daten durchführen darf – beispielsweise durch... [mehr]

Kennwörter generieren

Für den einen oder anderen Zweck möchten Sie vielleicht Kennwörter generieren oder in einer Benutzeroberfläche die Möglichkeit zum Generieren von Kennwörtern anbieten. Wenn Sie etwa Benutzer zu... [mehr]

Neuer Datensatz von Frontend zu Backend

Für manche Themen gibt es keine kurze, prägnante Überschrift. In diesem Fall wollen wir zeigen, wie Sie einen neuen Datensatz anlegen, der in einer temporären Tabelle im Frontend gespeichert wird,... [mehr]