window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Ribbon anpassen, Teil 1

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Das Ribbon, in der deutschen Version von Office auch Menüband genannt, ist die Menüleiste für Office-Anwendungen und somit auch für Access. Sie können die Befehle im Ribbon jedoch nicht nur während der Entwicklung von Access-Anwendungen nutzen, sondern dieses für eigene Anwendungen so anpassen, dass der Benutzer die Funktionen dieser Anwendung darüber aufrufen kann. Dabei können Sie die eingebauten Elemente sogar weitgehend ausblenden, sodass man Ihrer Anwendung nur noch an wenigen Stellen ansieht, dass es sich überhaupt um eine Access-Anwendung handelt. Diese Artikelreihe liefert alle Informationen, die Sie für die Arbeit mit dem Ribbon und für seine Anpassung und Programmierung benötigen. Dabei lernen Sie auch alle Steuerelemente und ihre Eigenschaften kennen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 2105_RibbonAnpassen.accdb.

Ribbon im Kontext der Access-Benutzeroberfläche

Das Ribbon ist nur ein Element der Benutzeroberfläche, die wir in diesem Artikel beschreiben. Die weiteren Elemente sind:

  • der Backstage-Bereich (das ist der Bereich, der erscheint, wenn Sie in Access ab Version 2010 auf den Ribbonreiter Datei klicken)
  • die Schnellzugriffsleiste (Quick Access Toolbar, QAT), welche immer sichtbare Schaltfläche anzeigt und in der Regel über dem eigentlichen Ribbon positioniert ist
  • die Kontextmenüs (contextMenus), die zum Ausführen von Befehlen dienen, die per Klick mit der rechten Maustaste erscheinen und
  • die Commands. Das sind nicht sichtbare Elemente, mit denen Sie die Funktion vorhandener, eingebauter Elemente durch benutzerdefinierte Funktionen ersetzen oder erweitern können.

Aufbau des Ribbons

Wir schauen uns zunächst die Elemente des Ribbons an, die wir auf den ersten Blick sehen (siehe Bild 1). Ganz oben sehen wir die Quick Access Toolbar beispielsweise mit den Schaltflächen zum Speichern, Wiederholen oder Rückgängig machen von Schritten.

Elemente des Ribbons

Bild 1: Elemente des Ribbons

Der Bereich darunter bis zum Arbeitsbereich von Access ist das Ribbon beziehungsweise das Menüband. Die Hauptelemente im Ribbon sind die tab-Elemente.

Neben diesen gibt es noch sogenannte Contextual Tabs. Diese werden nur im Kontext mit bestimmten Elementen der Benutzeroberfläche eingeblendet, beispielsweise mit der Datenblattansicht von Tabellen, Abfragen oder Formularen.

In der Hierarchie unterhalb der tab-Elemente sind die group-Elemente angeordnet. Jedes tab-Element kann ein oder mehrere group-Elemente enthalten, die jeweils nur mit dem übergeordneten Tab angezeigt werden. Die group-Elemente wiederum enthalten die eigentlichen Steuerelemente – siehe weiter unten. Außerdem finden wir im Ribbon rechts neben den Beschriftungen einiger group-Elemente noch sogenannte dialogBoxLauncher, mit denen Sie Dialoge mit weiteren Optionen zu den Gruppen öffnen können.

Der Bereich Datei/Backstage

Wenn Sie auf den Tab-Reiter Datei klicken, erscheint kein entsprechendes Tab-Element, sondern ein komplett anderer Bereich.

Dieser heißt Backstage-Bereich und enthält einige Schaltflächen und Steuerelemente für allgemeine Funktionen von Access, zum Beispiel zum Öffnen und Schließen von Datenbanken, Drucken oder Anzeigen der Access-Optionen (siehe Bild 2).

Der Backstabe-Bereich

Bild 2: Der Backstabe-Bereich

Die Schaltflächen hier können Sie zum Öffnen der dahintersteckenden Bereiche nutzen. Manche rufen auch einfach Funktionen auf, ohne einen eigenen Bereich anzuzeigen.

Steuern des Ribbons

Das Ribbon steuert man gewöhnlich durch Anklicken von Tabs oder Steuerelementen mit der Maus. Sie können aber auch Tastenkombinationen nutzen.

Betätigen Sie die Alt-Taste, erscheinen die in Bild 3 sichtbaren Buchstaben im Ribbon, mit denen Sie die einzelnen Tabs oder Befehle der Schnellzugriffsleiste aufrufen können.

Aktivieren von Ribbonbefehlen per Alt-Taste

Bild 3: Aktivieren von Ribbonbefehlen per Alt-Taste

Betätigen Sie dann die Taste mit dem jeweiligen Buchstaben, um einen Befehl direkt auszuführen oder das entsprechende tab-Element zu aktivieren und die Tastenkombinationen für die dortigen Befehle anzuzeigen.

Mögliche Anpassungen des Ribbons

Es gibt zwei Möglichkeiten, wie man das Ribbon anpassen kann:

  • Anpassung mit Bordmitteln
  • Anpassung mit XML

Anpassungen des Ribbons mit Bordmitteln

Die Anpassung mit Bordmitteln bezieht sich immer auf die aktuelle Access-Installation, also nicht etwa auf die aktuelle Datenbankdatei.

Dafür ist eine XML-Anpassung nötig. Die Anpassung mit Bordmitteln erfolgt über zwei Bereiche des Dialogs Access-Optionen, und zwar:

  • Menüband anpassen
  • Symbolleiste für den Schnellzugriff

Unter Menüband anpassen finden Sie zwei Listen (siehe Bild 4). Die linke zeigt alle Befehle an, die überhaupt für das Ribbon zur Verfügung stehen. Diese können Sie nach verschiedenen Kriterien über das Kombinationsfeld Befehle auswählen filtern.

Bereich des Optionen-Dialogs zum Anpassen des Menübands

Bild 4: Bereich des Optionen-Dialogs zum Anpassen des Menübands

Rechts sehen Sie den Bereich Menüband anpassen, der die nach einem Eintrag des oberen Kombinationsfeldes gefilterten Registerkarten anzeigt.

Sie können jeden Befehl zu jedem Bereich des Ribbons hinzufügen, allerdings nur in einer eigenen, benutzerdefinierten Gruppe. Sie nutzen also zuerst die Schaltfläche Neue Gruppe, um eine neue Gruppe hinzuzufügen, und kopieren dann die Befehle per Drag-and-Drop dort hinein.

Sie können auch eine komplett neue Registerkarte hinzufügen (Schaltfläche Neue Registerkarte) oder benutzerdefinierte Elemente über die Schaltfläche Umbenennen… umbenennen. Diese benutzerdefinierten Einträge können Sie mit einem Klick auf die Schaltfläche Zurücksetzen wieder verwerfen. Oder Sie exportieren diese mit einem Klick auf die Schaltfläche Importieren/Exportieren. So können Sie die Änderungen in eine Datei exportieren und diese darüber wieder in eine andere Access-Installation importieren.

Anpassen der Schnellzugriffsleiste

Die Schnellzugriffsleiste passen Sie auf ähnliche Weise an, und zwar im Bereich Symbolleiste für den Schnellzugriff in den Access-Optionen (siehe Bild 5). Der linke Bereich sieht genauso aus wie im zuvor beschriebenen Dialog, der rechte ist etwas einfacher gehalten. Hier können Sie nur einfach Einträge zur Schnellzugriffsleiste hinzufügen, diese hat keine weiteren Hierarchien wie Tabs oder Gruppen.

Bereich des Optionen-Dialogs zum Anpassen der Schnellzugriffsleiste

Bild 5: Bereich des Optionen-Dialogs zum Anpassen der Schnellzugriffsleiste

Anpassungen des Ribbons für die aktuelle Datenbankdatei

Die zweite Möglichkeit der Anpassung des Ribbons bezieht sich nicht auf die Access-In-stallation, sondern auf die aktuell geladene Access-Datenbank.

Auf diese Weise können Sie einer von Ihnen programmierten Datenbank eine Art Menüleiste hinzufügen, mit der Sie oder andere Benutzer mit Schaltflächen die Funktionen der Datenbank starten oder Elemente wie Formulare oder Berichte aufrufen können. Mit weiteren Steuerelementen wie Menüs, Splitbuttons oder dem Gallery-Steuerelement können Sie die Schaltflächen weiter verschachteln.

Oder Sie nutzen Steuerelemente wie comboBox oder dropDown zur Auswahl von Werten, editBox zur Anzeige oder Eingabe von Texten oder auch Umschaltflächen oder Kontrollkästchen für das Anzeigen oder Einstellen von Optionen. Die Anpassungen lassen sich im Wesentlichen für zwei Bereiche definieren:

  • die Hauptanwendung
  • einzelne Formulare und Berichte

Sie können also eine Ribbondefinition festlegen, die gleich beim Start als Anwendungsribbon angezeigt wird.

Diese Einstellung nehmen Sie in den Access-Optionen im Bereich Aktuelle Datenbank vor (siehe Bild 6).

Option zum Auswählen des Menübands für eine Anwendung

Bild 6: Option zum Auswählen des Menübands für eine Anwendung

Außerdem können Sie weitere Ribbondefinitionen hinterlegen, die Sie einzelnen Formularen oder Berichten zuweisen. Die entsprechenden Ribbons erscheinen dann, sobald das entsprechende Formular oder der Bericht geöffnet werden oder anderweitig den Fokus erhalten.

Diese Einstellung nehmen Sie für die Eigenschaft Name des Menübands im Bereich Andere des Formularentwurfs vor (siehe Bild 7). Auch hier sehen wir noch keinen Wert, da wir noch keine Ribbondefinition zur Anwendung hinzugefügt haben.

Option zum Auswählen des Menübands für ein Formular

Bild 7: Option zum Auswählen des Menübands für ein Formular

Die gleiche Eigenschaft finden Sie auch für Berichte vor.

Einfache Ribbondefinition erstellen

Damit wir uns in der Praxis ansehen können, wie wir ein Ribbon erstellen und dieses auch als Anwendungsribbon oder als Formular- oder Berichtsribbon anzeigen können, müssen wir eine entsprechende Definition erstellen. Diese formulieren wir im XML-Format.

Genau wie wir oben festgestellt haben, dass das Ribbon nur ein Teil der möglichen Anpassungen der Benutzeroberfläche ist, sieht es auch in der XML-Definition aus. Das Basiselement lautet nämlich customUI und wird wie folgt angelegt:

<xml version="1.0">
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"/>

Diesem fügen wir als Erstes ein ribbon-Element hinzu, weil wir das eigentliche Ribbon anpassen möchten:

<xml version="1.0">
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
   <ribbon/>
</customUI>

Der nächste Schritt ist ein tab-Element, das allerdings – im Ribbon nicht sichtbar – ein umschließendes tabs-Element benötigt. Dieses fasst alle tab-Elemente ein.

Ein tab-Element muss zumindest das Attribut id aufweisen und sollte auch eine Beschriftung enthalten, hier durch das label-Attribut realisiert:

<xml version="1.0">
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
   <ribbon>
     <tabs>
       <tab id="tab" label="Beispieltab"/>
     </tabs>
   </ribbon>
</customUI>

Das reicht als Grundstein aus, um die Anpassung vorzunehmen. Dazu sind jedoch noch weitere Schritte nötig.

Tabelle zum Speichern von Ribbondefinitionen

Wir benötigen nämlich eine Tabelle, in der wir alle Ribbondefinitionen für die Anwendung speichern. Diese enthält die folgenden Felder:

  • ID: Primärschlüsselfeld der Tabelle
  • RibbonName: Bezeichnung, die in den Auswahlfeldern zum Festlegen der Menübänder in den Access-Optionen und den Eigenschaften von Formularen und Berichten angezeigt werden soll
  • RibbonXML: Definition des Ribbons im XML-Format

Der Entwurf der Tabelle wird in Bild 8 abgebildet.

Entwurf der Tabelle zum Speichern der Ribbondefinitionen

Bild 8: Entwurf der Tabelle zum Speichern der Ribbondefinitionen

Diese Tabelle muss zwingend USysRibbons heißen. Wenn wir in die Datenblattansicht wechseln, können wir den soeben entwickelten XML-Code für die Ribbondefinition wie in Bild 9 als ersten Datensatz in die Tabelle einfügen.

Eine erste Ribbondefinition in der Tabelle USysRibbons

Bild 9: Eine erste Ribbondefinition in der Tabelle USysRibbons

Wenn wir nun allerdings versuchen, dieses Ribbon in den Access-Optionen oder als Eigenschaft eines Formulars oder Berichts auszuwählen, gelingt dies noch nicht auf Anhieb.

Dazu ist noch ein wichtiger Schritt notwendig: Wir müssen die Anwendung neu starten und somit die Inhalte der Tabelle USysRibbons einlesen, damit diese in den Auswahlfeldern mit den verfügbaren Ribbondefinitionen erscheinen.

USysRibbons ist eine Systemtabelle

Unter Umständen haben Sie die Tabelle USysRibbons nun gespeichert und geschlossen und wundern sich, dass diese gar nicht im Navigationsbereich erscheint. Das ist der Fall, weil USysRibbons mit USys… beginnt, was benutzerdefinierten Systemtabellen vorbehalten ist. Diese werden von Access standardmäßig nicht angezeigt. Wenn Sie diese bearbeiten wollen, können Sie die Systemtabellen über eine Option einblenden. Dazu klicken Sie mit der rechten Maustaste auf den Titel des Navigationsbereichs und wählen den Kontextmenü-Eintrag Navigationsoptionen… aus.

Es erscheint der Dialog aus Bild 10, in dem Sie die Option Systemobjekte anzeigen aktivieren.

Einblenden der Systemtabellen

Bild 10: Einblenden der Systemtabellen

Direkt danach erscheint auch die Tabelle USysRibbons im Navigationsbereich, wo Sie diese per Doppelklick zur weiteren Bearbeitung öffnen können.

Wenn Sie die Systemtabellen nicht einblenden möchten, können Sie die Tabelle USysRibbons übrigens auch mit dem folgenden Befehl über den Direktbereich des VBA-Editors öffnen (anzuzeigen mit Strg + G):

DoCmd.OpenTable               "USysRibbons"

Anwendungsribbon einstellen

Nun wollen wir allerdings erstmals unser Ribbon als Anwendungsribbon einstellen. Also schließen wir die Datenbank und öffnen diese erneut, was am schnellsten über den Befehl Datei|Informationen|Datenbank komprimieren und reparieren gelingt.

Danach öffnen wir die Access-Optionen und wechseln dort zum Bereich Aktuelle Datenbank. Unter Menüband- und Symbolleistenoptionen finden wir die Option Name des Menübands, wo wir nun die Definition mit dem Namen aus dem Feld RibbonName der Tabelle USysRibbons auswählen können (siehe Bild 11).

Auswählen des benutzerdefinierten Ribbons als Anwendungsribbon

Bild 11: Auswählen des benutzerdefinierten Ribbons als Anwendungsribbon

Damit unsere Anpassung angezeigt wird, benötigen wir allerdings noch einen weiteren Neustart der Datenbankdatei. Danach finden wir die Anpassung wie in Bild 12 im Ribbon vor.

Das neue tab-Element im Ribbon

Bild 12: Das neue tab-Element im Ribbon

Das sieht recht unscheinbar aus, und wenn wir den neuen Registerreiter anklicken, erscheint das leere Ribbontab aus Bild 13.

Das neue tab-Element enthält noch keine Gruppen oder Steuerelemente.

Bild 13: Das neue tab-Element enthält noch keine Gruppen oder Steuerelemente.

Das war allerdings erst der Anfang und wir wollen nun Gruppen und Steuerelemente anfügen.

tab-Element füllen

Als Erstes fügen wir dazu ein group-Element hinzu. Spannenderweise werden zwar die tab-Elemente in ein tabs-Element eingefasst, aber die group-Elemente nicht in ein groups-Element.

Das liegt vermutlich daran, dass es neben dem tabs-Element noch ein weiteres übergeordnetes Element für tab-Elemente namens contextualTabs gibt. Dazu kommen wir später.

group-Element hinzufügen

Das group-Element muss wie alle anderen ein id-Attribut mit einem für diese Ribbondefinition eindeutigen Wert enthalten.

Außerdem benötigen wir eine Beschriftung, die wir wiederum im Attribut label hinterlegen:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar