Barvna shema: Svetla
Trenutno dejavna stran: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Menü unmittelbar vor dem Öffnen füllen

Menü unmittelbar vor dem Öffnen füllen

Die Einträge eines Menüs hängen vom aktuellen Datensatz ab – „Sperren“ nur für aktive Kunden, die letzten Dokumente des Kunden –, deshalb wird das Menü bei jedem Öffnen neu gefüllt.

Voraussetzungen: WKL Forms Object Library 1.26 oder höher.

Lösungsüberblick

WklButton löst DropDown unmittelbar vor dem Öffnen seines Menüs aus, ob per Klick, Taste, ShowMenu oder durch eine Sprachausgabe. Die Ereignisprozedur leert das Menü (ClearMenu) und fügt die Einträge für den aktuellen Datensatz hinzu (AddMenuItem, AddMenuSeparator); MenuItemClick meldet die Auswahl. Änderungen in der Formularansicht werden nicht mit dem Formular gespeichert.

Umsetzung

Private Sub btnAktion_DropDown()
    Dim rs As DAO.Recordset
    With Me!btnAktion.Object
        .ClearMenu
        .AddMenuItem "sperren", "&Sperren", "E72E", Enabled:=Me!Aktiv, Reason:="Der Kunde ist bereits gesperrt."
        .AddMenuItem "mail", "&E-Mail senden", "E715", "Strg+M"
        .AddMenuItem "dokumente", "&Dokumente"
        Set rs = CurrentDb.OpenRecordset("SELECT TOP 5 DokumentID, Titel FROM tblDokument WHERE KundeID = " & Me!KundeID & " ORDER BY Datum DESC")
        Do Until rs.EOF
            .AddMenuItem "doc" & rs!DokumentID, rs!Titel, Parent:="dokumente"
            rs.MoveNext
        Loop
        rs.Close
    End With
End Sub
 
Private Sub btnAktion_MenuItemClick(ByVal Key As String)
    If Key Like "doc*" Then
        DoCmd.OpenForm "frmDokument", WhereCondition:="DokumentID = " & Mid$(Key, 4)
    ElseIf Key = "sperren" Then
        Me!Aktiv = False
    End If
End Sub

Hinweise

  • Ein Eintrag mit untergeordneten Einträgen („Dokumente“) öffnet sein Untermenü und wird selbst nie gemeldet; ein Untermenü ohne Einträge zeigt den Eintrag ohne Pfeil, und seine Auswahl löst MenuItemClick aus.
  • Der Text der Tastenkombination („Strg+M“) dient nur der Anzeige; behandeln Sie die Taste in Form_KeyDown mit KeyPreview.
  • Ein deaktivierter Eintrag zeigt seinen Grund als QuickInfo, wenn der Mauszeiger darauf ruht.
  • Ist das Menü nach DropDown leer, öffnet es sich nicht.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/fill-a-menu-before-it-opens.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille