Farbschema: Hell
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Kontextmenüs Formularen, Berichten und Steuerelementen zuordnen

Kontextmenüs Formularen, Berichten und Steuerelementen zuordnen

Legen Sie an einer Stelle fest, welches Formular, welcher Bericht, welches Steuerelement oder welche Art von Steuerelement welches Kontextmenü des Menübandmodells zeigt, statt die Eigenschaft Kontextmenüleiste Objekt für Objekt einzustellen.

Voraussetzungen: WKL Forms Object Library 1.53 oder höher, eine ACCDB (die Zuordnungen werden in der Entwurfsansicht geschrieben).

Lösungsüberblick

Die Seite Zuordnung des Menüband-Designers listet die Formulare und Berichte der Datenbank auf. Zu jedem Objekt zeigt sie das Objekt selbst, jedes Steuerelement, das ein Kontextmenü tragen kann, und eine Zeile je Art von Steuerelement (alle Textfelder, alle Kombinationsfelder …), jeweils mit dem Menü, das es jetzt hat, und dem Menü, das es nach OK erhält. Die Zuordnungen gehören zum Menübandmodell; nach OK schreibt WKL Ribbon sie in die Eigenschaft Kontextmenüleiste der Objekte (WklRibbon.ApplyAssignments).

Sie öffnen die Seite über das Menü Datenbanktools › Add-Ins › WKL Shortcut Menu Designer, über die Seitenliste des Menüband-Designers oder aus VBA:

CreateObject("WklForms.Ribbon").ShowAssignments

Zur Laufzeit müssen die Menüs selbst vorhanden sein: Ein Menüband des Modells legt sie beim Laden an; eine Datenbank ohne ein solches Menüband ruft beim Start EnsureMenus auf.

Umsetzung

  1. Legen Sie auf der Seite Kontextmenüs das Menü an, zum Beispiel ctxKunde mit den Einträgen, die die Formulare brauchen.
  2. Wählen Sie auf der Seite Zuordnung das Formular frmKunde. Wählen Sie in der Zeile Textfeld (Art) das Menü ctxKunde: Jedes Textfeld des Formulars erhält es. Wählen Sie ctxKunde auch in der Zeile des Kombinationsfelds cboOrt.
  3. Wählen Sie den Bericht rptKunde und dort ctxKunde in der Zeile des Berichts selbst.
  4. Schließen Sie mit OK. Die Spalte Nach OK hat gezeigt, was geschrieben wird; die Formulare und Berichte werden verborgen in der Entwurfsansicht geöffnet und dort gespeichert, wo sich etwas ändert.
  5. Legen Sie in einer Datenbank ohne Menüband des Modells die Menüs beim Start an:
Private Sub Form_Load()
    ' The context menus are temporary command bars: Access forgets them when it closes.
    CreateObject("WklForms.Ribbon").EnsureMenus
End Sub

Hinweise

  • Welche Zuordnung gilt. Die Zeile eines benannten Steuerelements hat Vorrang vor der Zeile seiner Art. Wählen Sie für eine Stelle, der das Modell ein Menü zugeordnet hatte, kein Menü, wird das Menü dort entfernt. Ein Kontextmenü, das das Modell nicht kennt (vom eigenen Code der Anwendung angelegt), wird nie entfernt, sondern nur dort ersetzt, wo das Modell ein anderes zuordnet.
  • Geöffnete Objekte werden übersprungen. Ein Formular oder Bericht, das bzw. der beim Schließen des Designers geöffnet ist, bleibt unverändert; eine Meldung nennt es. Schließen Sie das Objekt und öffnen Sie den Designer erneut, oder rufen Sie CreateObject("WklForms.Ribbon").ApplyAssignments auf.
  • ACCDE. Eine ACCDE hat keine Entwurfsansicht: Die Zuordnungen werden in der ACCDB geschrieben, und die daraus erstellte ACCDE übernimmt sie. In einer ACCDE löst ApplyAssignments den Fehler wkeNotAvailable aus.
  • Build-Werkzeug. Ist in access-app.json ribbonModel angegeben, schreibt der Build die Zuordnungen, nachdem er Formulare und Berichte geladen hat. Nennt eine Zuordnung ein Formular oder einen Bericht, das bzw. den der Build nicht erstellt, bricht der Build ab.
  • Bilder. Einträge zeigen Office-Bilder (imageMso) und Bilder aus der Bildergalerie der Datenbank (mit 16 × 16 Pixeln auf der Menüfarbe gezeichnet).

Verwandte Themen

de/wiki/msaccess/comctl/how-to/assign-context-menus-to-forms-and-controls.txt · Zuletzt geändert: von Wolfgang van der Stille