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

Ribbon-Programmierung, Teil I

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

Mit Access 2007 sind die Menüleiste und die Symbolleisten von Access weggefallen. Die Befehle wurden stattdessen in das so genannte Ribbon übertragen. Das Ribbon bietet wesentlich mehr Möglichkeiten als seine Vorgänger, aber es ist auch aufwändiger zu programmieren. Dies gelingt nicht mehr einfach per VBA, sondern Sie müssen sich zusätzlich auch noch in XML einarbeiten – zumindest in die grundlegenden Techniken. Das ist aber kein Problem, denn wir zeigen Ihnen in dieser Artikelreihe alles, was Sie wissen müssen, um Ihren Anwendungen selbst definierte Ribbons hinzuzufügen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1607_Ribbon.accdb.

Das Ribbon-Konzept

Das grundlegende Konzept zur Programmierung eigener Elemente für das Ribbon sieht vor, dass das Aussehen fast vollständig mit einem XML-Dokument beschrieben wird. Dieses enthält an manche Stellen sogenannte Callback-Attribute, für die Sie die Namen von VBA-Prozeduren hinterlegen können, die beim Eintreten der Ereignisse, die das jeweilige Callback-Attribut auslösen, aufgerufen werden sollen. Dies ist also etwa vergleichbar mit der Programmierung von Formularen und den durch die verschiedenen Aktionen ausgelösten Ereignisprozeduren. Mit dem kleinen Unterschied, dass Sie Formulare mithilfe einer praktischen Entwurfsansicht auf der Benutzeroberfläche zusammenklicken können, während Sie die Benutzeroberfläche im oberen Bereich des Access-Fensters, das Ribbon, komplett in XML formulieren müssen.

Es gibt zwar mittlerweile einige Tools, die einem diese Arbeit zumindest teilweise abnehmen, aber wir wollen Ihnen zunächst die Grundlagen zum selbst ausprobieren vermitteln.

Auf diese Weise können Sie später auch den von einem Tool erzeugten Code verstehen und gegebenenfalls nach Ihren Wünschen anpassen.

Die Tabelle USysRibbons

Wenn Sie eine Ribbon-Definition zur Anwendung bringen wollen, also etwa so, dass beim Start der Access-Datenbank alle eingebauten Elemente des Ribbons verschwinden und durch einen eigenen Befehl ersetzt werden, benötigen Sie eine Tabelle, in der Sie den Namen dieser Ribbon-Definition sowie die Definition selbst im XML-Format speichern. Der Inhalt dieser Tabelle wird beim nächsten öffnen der Access-Anwendung abgefragt. Die Ribbon-Definitionen stehen dann über den Namen an verschiedenen Stellen in der Anwendung zur Auswahl:

  • als Anwendungsribbon, also zur Anzeige mit dem öffnen der Anwendung,
  • als Formularribbon, das nach dem öffnen eines Formulars angezeigt wird und mit diesem wieder geschlossen wird und
  • als Berichtsribbon, das gleichzeitig mit der Anzeige eines Berichts eingeblendet wird.

Ribbons on the fly

Theoretisch besteht auch die Möglichkeit, Ribbons ad hoc per Code zusammenzustellen und diese anzuzeigen. Dies gelingt jedoch nur in Zusammenhang mit dem öffnen eines Formulars, wie wir später in dieser Reihe zeigen werden.

Bilder im Ribbon

Wenn Sie Icons in Ihrem benutzerdefinierten Ribbon abbilden möchten, was empfehlenswert ist, um eine ergonomisch und optisch ansprechende Anwendung zu erhalten, benötigen Sie eine weitere Tabelle, die aber in den neueren Access-Versionen (ab 2010) standardmäßig in einer neuen .accdb-Datei vorhanden ist. Diese Tabelle heißt MSysResources und ist in der Regel nicht zu sehen, da diese als ausgeblendet markiert ist. Auch die Tabelle USysRibbons wird wegen ihres Präfix USys… nicht standardmäßig im Navigationsbereich angezeigt, sondern erst dann, wenn Sie diese über die Access-Optionen einblenden. Außerdem benötigen Sie zur Anzeige von Bilddateien, die üblicherweise im .png-Format verwendet werden, noch einige Prozeduren, die wir aber in den Beispieldateien zur Verfügung stellen.

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