Seit Access 2007 ersetzt das sogenannte Ribbon die klassischen Menü- und Symbolleisten. Es bringt Struktur, Klarheit und moderne Bedienung in Access-Anwendungen – wenn man es richtig nutzt. In diesem Beitrag zeige ich Dir, wie sich die Ribbon-Programmierung über die Versionen hinweg verändert hat, welche Möglichkeiten bestehen und wie Du mit XML und VBA eigene Ribbon-Steuerelemente programmierst.
🧭 Historischer Überblick: Vom CommandBar-Menü zum XML-Ribbon
✅ Access 2003 und früher
- Klassische CommandBars (Menü- und Symbolleisten)
- Steuerung vollständig über VBA (
CommandBars("Datei").Controls.Add...) - Benutzerdefiniert, aber veraltet seit Office 2007
🚀 Access 2007: Die Revolution mit Fluent UI
- Einführung des Ribbon auf Basis von XML
- Definition in der Tabelle
USysRibbons - Unterstützung für:
- Tabs & Gruppen
- Buttons, ToggleButtons, Galleries
- Callback-Funktionen in VBA
🔄 Access 2010 bis 2016
- Kein Bruch, aber Stabilisierung
- Geringfügige Erweiterungen in der Office-Welt (z. B. Backstage-Menü)
- Themes, Symbole und Kontextregisterkarten
📦 Access 2019 / 2021 / Microsoft 365
- Ribbon-Architektur bleibt erhalten
- Fokus auf Kompatibilität und Theme-Anpassung
- Keine dynamische XML-Generierung zur Laufzeit möglich
- Noch immer keine GUI für Ribbon-Design in Access selbst
🧩 Aufbau eines benutzerdefinierten Ribbons
1. XML-Definition in USysRibbons
Beispiel für ein einfaches Ribbon mit einem Tab und einem Button:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="tabBenutzer" label="Meine Funktionen">
<group id="grpAktionen" label="Aktionen">
<button id="btnInfo" label="Info" size="large"
imageMso="HappyFace"
onAction="Ribbon_Click" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
2. Eintrag in USysRibbons
Erstelle eine neue Tabelle mit folgendem Aufbau:
| RibbonName | RibbonXML |
|---|---|
| MeinRibbon | (XML wie oben) |
⚠️ Wichtig: Benenne die Tabelle USysRibbons (mit „USys“) – Access erkennt sie dann automatisch als Ribbon-Definition.
3. Aktivieren in den Optionen
- Datei > Optionen > Aktuelle Datenbank
- Dropdown „Menübandname“: Wähle
MeinRibbon
4. VBA-Callback
Public Sub Ribbon_Click(control As IRibbonControl)
Select Case control.ID
Case "btnInfo"
MsgBox "Das ist ein benutzerdefinierter Ribbon-Button!"
End Select
End Sub
🛠️ Nützliche XML-Beispiele & Elemente
📌 Button mit Toggle-Funktion:
<toggleButton id="tglAnsicht" label="Ansicht umschalten"
imageMso="TableViewDatasheet"
onAction="ToggleAnsicht" />
Public Sub ToggleAnsicht(control As IRibbonControl, pressed As Boolean)
If pressed Then
DoCmd.OpenForm "frmÜbersicht"
Else
DoCmd.Close acForm, "frmÜbersicht"
End If
End Sub
📌 Dropdown (Gallery):
<dropDown id="ddlBerichte" label="Berichte wählen" getItemCount="GetCount"
getItemLabel="GetLabel" onAction="SelectBericht" />
Public Function GetCount(control As IRibbonControl, ByRef count As Integer)
count = 3
End Function
Public Function GetLabel(control As IRibbonControl, index As Integer, ByRef label As String)
Select Case index
Case 0: label = "Kundenliste"
Case 1: label = "Umsatzreport"
Case 2: label = "Projektübersicht"
End Select
End Function
Public Sub SelectBericht(control As IRibbonControl, id As String, index As Integer)
Select Case index
Case 0: DoCmd.OpenReport "rptKunden", acViewPreview
Case 1: DoCmd.OpenReport "rptUmsatz", acViewPreview
Case 2: DoCmd.OpenReport "rptProjekte", acViewPreview
End Select
End Sub
🎯 Best Practices
| Tipp | Beschreibung |
|---|---|
| 🔐 Callback-Namen sauber halten | Verwende sprechende Namen für Callbacks wie onAction="cmdExportieren_Click" |
| 🧱 Modular denken | Trenne Ribbon-Logik von Formularlogik |
| 🧩 Bilder und Icons | Verwende imageMso für Standard-Icons (Liste bei Microsoft verfügbar) |
| 🛑 Fallbacks vermeiden | Ribbons funktionieren nicht ohne korrekt definierte XML |
| 🧪 Debugging | Aktiviere im VBA-Editor: Fehlerbehandlung aktivieren (Strg+G → Direktfenster) |
📁 Ressourcen und Tools
- RibbonX Editor (Open Source Tool) – ideal zum Bearbeiten der XML
- Microsoft Symbol-Liste: imageMso Reference
- AccessRibbon.de – Umfangreiche deutsche Doku & Beispiele
🐑 Fazit für IT-Abteilungen & Entwickler im Mittelstand
Die Ribbon-Programmierung ist seit Access 2007 technisch stabil geblieben – das heißt: einmal gelernt, kannst Du Deine Ribbon-Logik in nahezu allen modernen Access-Versionen wiederverwenden. Gerade bei komplexeren Anwendungen (ERP, CRM, DMS, etc.) sorgt ein sauber programmiertes Ribbon für eine klare Benutzerführung und entlastet die Nutzer durch kontextbezogene Aktionen.
📦 Du brauchst Hilfe?
Ich unterstütze Dich gern bei der Umsetzung eigener Ribbons – ob für Standardfunktionen oder zur Steuerung ganzer Access-Anwendungen.

