Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Ribbon zur Laufzeit ndern

Ribbons von Formularen und Berichten kann man zur Laufzeit nicht ndern. Man kann ihnen aber ein neues Ribbon zuweisen, das man zuvor per Code, aus der Tabelle USysRibbon oder aus einer Datei gewonnen hat.

Beispieldatenbank

Die Beispieldatenbank zeigt direkt beim Start ein Formular an, das an die Tabelle USysRibbons gebunden ist. Diese enthlt bekanntlich die in den Access-Optionen und in Formularen und Berichten verfgbaren Ribbons.

Wenn man dort einen Eintrag angelegt hat (mit Ribbon-Name und dem Ribbon-XML-Code) und die Access-Anwendung erneut startet, kann man diesen in den Optionen und in der Eigenschaft Name der Multifunktionsleiste von Formularen und Berichten auswhlen. Beim nchsten Start erscheinen die Ribbons dann dort auch.

Abbildung 1: Ribbons zur Laufzeit ndern

Sind nderungen fllig, trgt man diese in die Tabelle USysRibbons ein und findet diese beim nchsten Start der Anwendung vor.

Dynamik fgt man einem Ribbon hchstens ber die Aktualisierung der Callbackfunktionen hinzu.

Das war zumindest die gngige Annahme. Es ist aber auch mglich, die Ribbon-Definition zu ndern und ohne Neustart anzuzeigen. Dies zeigt die Beispielanwendung, die wir mit gutem Grund zunchst im .mde-Format geliefert haben: Sie sollten nmlich herausfinden, wie das funktioniert, was wir da gebaut haben. Geschafft hat es Johannes Wilke, der damit das bald erscheinende Buch "Ribbon-Programmierung fr Office 2007" gewonnen hat.

Um die Funktion auszuprobieren, ndern Sie den im Formular frmRibbons angezeigten Ribbon-Code und klicken dann auf Anzeigen. Wenn die Ribbon-Definition regelgerecht ist, zeigt sich das Ribbon direkt in der angepassten Fassung.

Der Trick ist, mit LoadCustomUI die Ribbon-Definition in die Anwendung zu laden und ihr dabei einen noch nicht vergebenen Namen zu geben. Diesen trgt man dann in die Eigenschaft RibbonName von Formularen oder Berichten ein und erhlt somit ein zur Laufzeit dynamisch generierbares Ribbon.

Der Code der Schaltflche, die das Ribbon zur aktuell angezeigten Definition anwenden soll, sieht so aus:

Private Sub cmdAnzeigen_Click()

    Dim strGUID As String

    strGUID = CreateGUID

    Application.LoadCustomUI strGUID, Me.RibbonXML

    Me.RibbonName = strGUID

End Sub

CreateGUID ist eine Hilfsfunktion, die eine GUID fr den eindeutigen Namen erzeugt, und die LoadCustomUI-Methode ldt die Ribbon-Definition unter dem angegebenen Namen ein.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.