Erstellen von benutzerdefinierten Menüs und Kontextmenüs mithilfe von Makros

Gilt für
Access für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Mit Access-Makros können Sie benutzerdefinierte Kontextmenüs erstellen, die angezeigt werden, wenn Sie mit der rechten Maustaste auf Formulare, Berichte oder einzelne Steuerelemente klicken. Sie können auch benutzerdefinierte Menüs erstellen, die für bestimmte Formulare oder Berichte im Menüband angezeigt werden.

Um ein Menü mithilfe von Makros zu erstellen, führen Sie drei Hauptschritte aus:

  1. Erstellen Sie ein Makroobjekt mit Untermakros, die die Menübefehle enthalten.
  2. Erstellen Sie ein weiteres Makroobjekt, das das Menü selbst erstellt.
  3. Fügen Sie das Menü an ein Steuerelement, ein Formular, einen Bericht oder an die Datenbank als Ganzes an.

In den folgenden Abschnitten werden Sie durch diese Schritte im Detail geführt.

Tipp

Wenn Sie erfahren möchten, wie Sie benutzerdefinierte Kontextmenüs in Access mithilfe von Visual Basic for Applications (VBA)-Code erstellen, lesen Sie den Artikel Erstellen eines Kontextmenüs für ein Formular, ein Formularsteuerelement oder einen Bericht.

Schritt 1: Erstellen eines Makroobjekts mit Untermakros, die die Menübefehle enthalten

In diesem Schritt erstellen Sie ein Makroobjekt mit Untermakros, von denen jedes Untermakro ein eigener Befehl im Kontextmenü ist.

Was ist ein Untermakro?

Sie können ein Untermakro innerhalb eines Makroobjekts verwenden, um eine Reihe von Makroaktionen zu definieren. Untermakros innerhalb eines Makroobjekts können getrennt von verschiedenen Steuerelement- und Objektereignissen aufgerufen werden. Die einzelnen Untermakros innerhalb eines Makroobjekts haben jeweils einen eindeutigen Namen und können eine oder mehrere Makroaktionen enthalten.

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Makros und Code auf Makro.

  2. Für jeden Befehl, den Sie in Ihrem benutzerdefinierten Kontextmenü haben wollen:

    1. Fügen Sie im Entwurfsfenster des Makros eine Untermakromakro-Anweisung hinzu, und benennen Sie das Untermakro so, wie es im Kontextmenü angezeigt werden soll (z. B. "Drucken" oder "Aktualisieren").

      Tipp

      Um eine Zugriffstaste zu erstellen, mit der Sie den Befehl über die Tastatur auswählen können, geben Sie ein kaufmännisches Und-Zeichen (&) vor dem Buchstaben ein, den Sie als Zugriffstaste im Befehlsnamen verwenden möchten (z. B. "&Aktualisieren"). Dieser Buchstabe wird auf der Speisekarte unterstrichen.

    2. Wählen Sie im Untermakro die erste Aktion aus, die ausgeführt werden soll, wenn Sie auf den Befehl im Kontextmenü klicken.

    3. Wenn bei Auswahl dieses Befehls weitere Aktionen ausgeführt werden sollen, fügen Sie diese als separate Makroaktionen innerhalb desselben Untermakros hinzu.

  3. Speichern und benennen Sie das Makroobjekt, z. B. mcrShortcutMenuCommands.
    Die folgende Abbildung zeigt ein Beispielmakroobjekt mit drei Untermakros für ein benutzerdefiniertes Menü oder Kontextmenü.
    Screenshot des Access-Makroentwurfsfensters mit drei Untermakroanweisungen.

Schritt 2: Erstellen eines zweiten Makroobjekts, das das Menü erstellt

Dieser Schritt mag redundant erscheinen, aber um das Kontextmenü aus dem Makroobjekt zu erstellen, das Sie in Schritt 1 erstellt haben, müssen Sie ein zweites Makroobjekt erstellen, das die AddMenu-Makroaktion enthält. Diese Makroaktion wird manchmal als "Menümakro" bezeichnet.

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Makros und Code auf Makro.
  2. Wählen Sie im Kombinationsfeld Neue Aktion hinzufügen im Fenster "Makroentwurf" die Option "AddMenu" aus.
  3. Geben Sie im Argumentfeld "Menüname " für die Makroaktion "AddMenu" den Namen des Menüs ein (z. B. "Formularbefehle"). Dieses Argument ist nicht erforderlich, wird jedoch empfohlen, wenn Sie in Schritt 3 planen, das Menü einer Registerkarte des Menübands hinzuzufügen (z. B. die Registerkarte Add-Ins eines Formulars oder Berichts). Wenn das Menü in Schritt 3 als Kontextmenü hinzugefügt wird, wird das Argument Menüname ignoriert.
  4. Geben Sie im Argumentfeld Menü Makroname den Namen des Makroobjekts ein, das Sie in Schritt 1 erstellt haben.
  5. Speichern Sie dieses zweite Makroobjekt, und benennen Sie es z. B. mcrAddShortcutMenu.
    Die folgende Abbildung zeigt ein Beispiel für ein Menümakroobjekt, das das Menü erstellt, das wir in Schritt 1 entworfen haben.
    Screenshot eines Access-Makroobjekts mit einer AddMenu-Makroaktion.

Schritt 3: Anfügen des Menüs an ein Steuerelement, Formular, einen Bericht oder eine Datenbank

Verwenden Sie abhängig davon, wo das Menü angezeigt werden soll, eines oder mehrere der folgenden Verfahren.

Hinzufügen des Menüs zur Add-Ins Registerkarte eines Formulars oder Berichts

Verwenden Sie dieses Verfahren, wenn das Menü für ein bestimmtes Formular oder einen bestimmten Bericht auf der Registerkarte Add-Ins angezeigt werden soll.

  1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf das Formular oder den Bericht, wo das Menü angezeigt werden soll, und klicken Sie dann auf Entwurfsansicht.
  2. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Tools auf Eigenschaftenblatt.
  3. Wählen Sie das gesamte Objekt aus, indem Sie in der Liste oben im Aufgabenbereich "Eigenschaftenblatt" die Option "Formular " oder "Bericht " auswählen.
  4. Geben Sie auf der Registerkarte "Sonstiges " des Eigenschaftenblatts im Eigenschaftenfeld "Menüleiste " den Namen des Makroobjekts ein, das Sie in Schritt 2 erstellt haben (in diesem Beispiel "mcrAddShortcutMenu").
  5. Speichern Sie Ihre Formular- oder Berichtsänderungen.
    Beim nächsten Öffnen des Formulars oder Berichts wird die Registerkarte Add-Ins im Menüband angezeigt. Klicken Sie auf die Registerkarte, um das Menü anzuzeigen, wie in der folgenden Abbildung dargestellt:
    Screenshot des Menübands
    Weitere Informationen zu Techniken zur Anpassung des Menübands, z. B. das Hinzufügen benutzerdefinierter Registerkarten oder das Ausblenden der Standardregisterkarten, finden Sie im Artikel Erstellen eines benutzerdefinierten Menübands in Access.

Hinzufügen des Menüs als Kontextmenü für ein Formular, einen Bericht oder ein Steuerelement

Verwenden Sie diese Prozedur, wenn das Menü angezeigt werden soll, wenn Sie mit der rechten Maustaste auf ein bestimmtes Formular, einen bestimmten Bericht oder ein Steuerelement klicken.

  1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf das Formular oder den Bericht, wo das Kontextmenü angezeigt werden soll, und klicken Sie dann auf Entwurfsansicht.
  2. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Tools auf Eigenschaftenblatt.
  3. Wählen Sie das Steuerelement oder Objekt aus, dem bzw. dem Sie das Kontextmenü anfügen möchten.
    Um das gesamte Objekt auszuwählen, wählen Sie in der Liste oben im Aufgabenbereich "Eigenschaftenblatt" die Option "Formular " oder "Bericht " aus.
  4. Geben Sie auf der Registerkarte "Sonstiges " des Eigenschaftenblatts im Eigenschaftenfeld der Kontextmenüleiste den Namen des Makroobjekts ein, das Sie in Schritt 2 erstellt haben (in diesem Beispiel "mcrAddShortcutMenu").
  5. Stellen Sie sicher, dass die Kontextmenü-Eigenschaftauf Ja festgelegt ist.
  6. Speichern Sie Ihre Formular- oder Berichtsänderungen.
    Wenn Sie das nächste Mal das Formular oder den Bericht öffnen und dann mit der rechten Maustaste auf das Formular, den Bericht oder das Steuerelement klicken, wird das Kontextmenü mit den zugehörigen Befehlen angezeigt, wie in der folgenden Abbildung dargestellt:
    Screenshot eines Kontextmenüs auf einem Access-Formular

Hinzufügen des Menüs als globales Kontextmenü

Dieses Verfahren ersetzt alle Standardkontextmenüs in der aktuellen Datenbank. Benutzerdefinierte Kontextmenüs, die Sie an bestimmte Formulare, Berichte oder Steuerelemente angefügt haben, sind nicht betroffen.

  1. Klicken Sie auf "Dateioptionen>".
  2. Klicken Sie im Dialogfeld Access-Optionen auf Aktuelle Datenbank.
  3. Geben Sie unter Menüband- und Symbolleistenoptionen im Kontextmenüleistenfeld den Namen des Makros ein, das Sie in Schritt 2 erstellt haben (in diesem Beispiel "mcrAddShortcutMenu").
  4. Klicken Sie auf OK , um Ihre Änderungen im Dialogfeld Access-Optionen zu speichern.
  5. Schließen Sie Ihre Datenbank, und öffnen Sie sie erneut, damit die Änderungen wirksam werden.

Benutzerdefinierte Kontextmenüs ersetzen die Standardkontextmenüs für die Objekte, an die sie angefügt sind. Wenn Sie bestimmte Access-Befehle beibehalten möchten, die in diesen Menüs verwendet werden sollen, verwenden Sie die Makroaktion "Befehl ausführen ", um die Befehle in die Makroobjekte für die Menüs zu platzieren, in denen sie enthalten sein sollen.

Ein benutzerdefiniertes Kontextmenü, das an ein Steuerelement angefügt ist, ersetzt alle anderen benutzerdefinierten Kontextmenüs, die in der Datenbank definiert sind. Ein benutzerdefiniertes Kontextmenü, das an ein Formular oder einen Bericht angefügt ist, ersetzt ein benutzerdefiniertes globales Kontextmenü.

Wenn Sie ein Menümakro für ein Formular, einen Bericht oder für die Datenbank angeben, führt Access dieses Menümakro bei jedem Öffnen des Formulars, Berichts oder der Datenbank aus. Wenn Sie Änderungen am Menümakroobjekt oder am Makroobjekt vornehmen, das seine Befehle definiert, während das Formular, der Bericht oder die Datenbank geöffnet ist, müssen Sie das Formular, den Bericht oder die Datenbank schließen und erneut öffnen, um die Änderungen anzuzeigen.

Um ein Untermenü in einer Kontextmenüliste mit Befehlen zu erstellen, führen Sie Schritt 1 aus, um ein separates Makroobjekt zu erstellen, das nur die Untermenübefehle enthält, wie in der folgenden Abbildung dargestellt:

Screenshot eines Makros in Access mit zwei Untermakros

Führen Sie dann erneut Schritt 1 aus, um die Befehle für das übergeordnete Menüobjekt zu definieren. Fügen Sie das Untermenü mithilfe der Makroaktion AddMenu als Element im übergeordneten Makroobjekt hinzu. Die folgende Abbildung zeigt das Makroobjekt für ein Menü, das ein Untermenü enthält. Das dritte Untermakro in diesem Beispielmakroobjekt erstellt das Untermenü Exportieren nach... (mcrShortcutSubMenuCommands).

Screenshot eines Access-Makros mit vier Untermakros

Die folgende Abbildung zeigt das resultierende vollständige Kontextmenü mit einem Untermenü:

Screenshot eines Kontextmenüs mit einem Untermenü

Sie können mehrere Ebenen von Untermenüs erstellen, indem Sie AddMenu-Makroaktionen in den Makroobjekten für jede Menüebene verwenden. Stellen Sie sicher, dass Sie für jede AddMenu-Aktion einen Wert für das Argument Menüname angeben. Andernfalls wird das Untermenü als leere Zeile im übergeordneten Menü angezeigt.

Bedingungen für Makroausdrücke mit If/Then/Else-Blöcken werden nur im Menü-Makroobjekt der obersten Ebene unterstützt. Mit anderen Worten, Sie können einen Bedingungsausdruck in einem Menümakroobjekt verwenden, um zu bestimmen, ob ein bestimmtes Menü oder Kontextmenü angezeigt wird, aber nur für die Menüs auf der obersten Ebene. Sie können keine Bedingungsausdrücke verwenden, um Befehle oder Untermenüs in den Menüs ein- oder auszublenden. Sie können auch einen Bedingungsausdruck verwenden, um ein benutzerdefiniertes Kontextmenü oder ein globales Kontextmenü auszublenden oder einzublenden.

Optional kann das Menümakro, das Sie in Schritt 2 erstellen, Teil eines Makroobjekts sein. Wenn Sie beispielsweise mehrere Kontextmenüs für verschiedene Objekte oder Steuerelemente haben, können Sie ein einzelnes Makroobjekt erstellen, das alle erforderlichen Menümakros enthält. Stellen Sie sicher, dass Sie für jedes Untermakro einen eindeutigen Namen haben. Verwenden Sie in Schritt 3 die folgende Notation, um auf das Makro zu verweisen: MacroObjectName.SubmacroName. Beispiel: mcrAddShortcutMenus.AddMenu2.

Seitenanfang