Color scheme: Light
You are here: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Menüband per Code steuern

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 · Last modified: by Wolfgang van der Stille