Menüband per Code steuern
Deaktivieren, ausblenden, umbenennen oder drücken Sie Befehle des Menübands aus VBA, und reagieren Sie, bevor ein Befehl ausgeführt wird.
Voraussetzungen: WKL Forms Object Library 1.49 oder höher.
Lösungsüberblick
Das generierte Modul basWklRibbon enthält die Funktion WklRibbonObject(). Sie gibt das Laufzeitobjekt des Menübands
der Datenbank zurück: Enabled, Visible, Label und Pressed je Befehl wirken sofort im Menüband, in der Ansicht
Datei und in den Kontextmenüs; ResetCommand kehrt zum Stand des Modells zurück. Das Ereignis Action tritt vor
der Aktion eines Befehls ein und kann sie abbrechen.
Umsetzung
' In the module of the form frmAuftrag
Private WithEvents mRibbon As WklRibbon
Private Sub Form_Load()
Set mRibbon = WklRibbonObject()
End Sub
Private Sub Form_Current()
' Only a released order can be printed.
mRibbon.Enabled("cmdDrucken") = (Nz(Me!Status, "") = "freigegeben")
End Sub
Private Sub Form_Close()
mRibbon.ResetCommand "cmdDrucken"
End Sub
Private Sub mRibbon_Action(ByVal Command As String, ByVal Pressed As Boolean, Cancel As Integer)
If Command = "cmdDrucken" And Me.Dirty Then Me.Dirty = False
End Sub
Private Sub mRibbon_ActionError(ByVal Command As String, ByVal Description As String)
MsgBox "Der Befehl konnte nicht ausgeführt werden: " & Description, vbExclamation
End Sub
Hinweise
Visible= False blendet einen Befehl zusätzlich zu seiner Bedingung aus; einen Befehl, den seine Bedingung ausblendet, kann es nicht einblenden.- Die Werte gehören zur Datenbank in der Access-Sitzung, nicht zum Formular: Setzen Sie sie beim Schließen des Formulars wie oben zurück, sofern sie nicht bestehen bleiben sollen.
- Eine
WithEvents-Variable ist nur auf Modulebene eines Formulars, Berichts oder einer Klasse möglich. Das Ereignis geht an dieses Objekt;WklRibbonObject()gibt immer das Objekt des Moduls zurück, sodass jeder Empfänger die Ereignisse des Menübands erhält. Execute "cmdDrucken"führt einen Befehl aus dem Code aus, als hätte der Benutzer ihn gewählt.
Verwandte Themen
de/wiki/msaccess/comctl/how-to/control-the-ribbon-from-code.txt · Zuletzt geändert: von Wolfgang van der Stille