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
MenuItemClickaus. - Der Text der Tastenkombination („Strg+M“) dient nur der Anzeige; behandeln Sie die Taste in
Form_KeyDownmitKeyPreview. - Ein deaktivierter Eintrag zeigt seinen Grund als QuickInfo, wenn der Mauszeiger darauf ruht.
- Ist das Menü nach
DropDownleer, ö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