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

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2011.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Lernen Sie den Backstage-Bereich kennen und passen Sie diesen für eigene Anwendungen an.

Techniken

Ribbon, XML, Backstage

Voraussetzungen

Access 2010 und höher

Beispieldateien

Backstage.accdb

Shortlink

www.access-im-unternehmen.de/766

Der Backstage-Bereich, Teil I

André Minhorst, Duisburg

Mit Access 2010 hat Microsoft die Benutzeroberfläche nicht ganz so radikal wie in Access 2007 umgekrempelt. Mit dem Backstage-Bereich statt des Office-Menüs gibt es aber dennoch eine Menge Neues zu berichten. Der Backstage-Bereich bietet enorme Möglichkeiten, aber es gibt auch eine schlechte Nachricht: Genau wie beim Ribbon müssen Sie auch hier tief in die XML-Kiste greifen, um diesen Bereich zu gestalten - oder auch nicht, wie dieser Beitrag zeigen wird.

Der Backstage-Bereich von Access und auch der übrigen Office-Anwendungen enthält im Wesentlichen die Funktionen, die einst im Datei-Menü (bis Office 2003) beziehungsweise im Office-Menü (Office 2007) enthalten waren. Im Fall von Access finden Sie hier außerdem einige Elemente des früheren Extras-Menüs wie beispielsweise die Funktionen zum Komprimieren und Reparieren, Verschlüsseln oder zum Erstellen einer .mde/.accde-Datenbank.

Den Backstage-Bereich öffnen Sie durch einen Klick auf den Datei-Tab des Ribbons.

Die tollste Neuerung ist eine Erweiterung der Liste der zuletzt geöffneten Datenbankdateien: Bereits auf den ersten Blick finden Sie eine Liste mit Dateinamen links im Backstage. Ein weiterer Klick auf den Eintrag Zuletzt verwendet zeigt dann eine wesentlich umfangreichere und detailliertere Liste der zuletzt verwendeten Datenbanken an (s. Abb. 1).

pic001.png

Abb. 1: Liste der zuletzt verwendeten Datenbanken

Und es kommt noch besser: Mit den Pinnwand-Nadel-Symbolen können Sie die angezeigten Einträge ganz oben in der Liste fixieren, sodass wichtige Datenbanken immer verfügbar sind, auch wenn Sie diese zuletzt nicht so häufig verwendet haben.

Unterschiede zwischen Definition und Aufbau

Beim Blick auf die Benutzeroberfläche könnte man den Eindruck gewinnen, dass der Backstage-Bereich ein Teil des Ribbons ist - immerhin öffnen Sie ihn über eines der Ribbon-Tabs. In der XML-Definition des Ribbons wird später jedoch klar werden, dass dies nicht die ganze Wahrheit ist. Tatsächlich gibt es dort ein Hauptelement namens customUI, dem die Elemente ribbon und backstage genau wie commands und contextMenus untergeordnet sind. Deshalb sprechen wir im Folgenden auch von CustomUI-Anpassung statt von Ribbon-Anpassung.

Anpassung

Für den Access-Entwickler ergeben sich einige Möglichkeiten: Im Backstage-Bereich lassen sich wunderbar eigene Element unterbringen, ja sogar komplette Anwendungsbereiche. Grundsätzlich haben Sie dort fast die gleichen Möglichkeiten wie in richtigen Access-Formularen. Gleichwohl sei direkt zu Beginn angemerkt, dass der Aufbau und die Pflege von Anwendungsteilen, die statt in Formulare in den Backstage-Bereich ausgelagert werden, wesentlich aufwendiger sein dürfte.

Backstage anpassen

Das Anpassen des Backstage-Bereichs erfolgt genau wie beim Ribbon unter Access 2007 und 2010 über die Erstellung eines XML-Dokuments, das dann optimalerweise in einer speziellen Tabelle der Datenbank gespeichert wird. Damit eine der in dieser Tabelle gespeicherten Ribbon-Definitionen gleich beim Start der Anwendung zum Einsatz kommt, legen Sie den Namen dieser Definition in den Access-Optionen dieser Datenbankdatei fest.

Im Einzelnen sieht das so aus, dass Sie zunächst eine Tabelle namens USysRibbons erstellen, die wie in Abb. 2 aufgebaut ist.

pic002.png

Abb. 2: Tabelle zum Speichern der CustomUI-Definitionen

In dieser Tabelle speichern Sie je Datensatz den Namen des Ribbons sowie die XML-Definition dieses Ribbons. Der Name ist wichtig, weil Sie das Ribbon darüber in den Access-Optionen als Anwendungsribbon einstellen können.

Gegenüber den CustomUI-Definitionen unter Access 2007 verwenden Sie unter Access 2010 ein neues Schema, das unter anderem die Definition des Backstage-Bereichs festlegt. Die erste Zeile einer jeden XML-CustomUI-Definition sieht unter Access 2010 daher so aus:

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

Das den Backstage-Bereich zusammenfassende Element folgt direkt unterhalb des customUI-Elements und heißt folgerichtig backstage.

<backstage>

...

</backstage>

Es enthält alle weiteren Elemente des Backstage-Bereichs. Für die folgende Beschreibung der Implementierung einer CustomUI-Definition fügen wir noch ein weiteres Element hinzu, das eine Schaltfläche zum Backstage-Bereich hinzufügt. Die Definition sieht so aus:

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

    <backstage>

        <button id="btn1" label="Beispielbutton"/>

    </backstage>

</customUI>

Damit die Anwendung den Backstage-Bereich um diese Schaltfläche erweitert, fügen Sie die obige XML-Definition gemeinsam mit dem Namen EinfacherBackstagebereich zur Tabelle USysRibbons hinzu (s. Abb. 3).

pic003.png

Abb. 3: Beispiel einer CustomUI-Definiton in der Tabelle USysRibbons

Danach schließen Sie die Anwendung und öffnen sie erneut. Wechseln Sie zum Backstage-Bereich und klicken Sie unten auf Optionen. Im nun erscheinenden Dialog wechseln Sie zum Bereich Aktuelle Datenbank und wählen dort unter Name des Menübands den Wert EinfacherBackstagebereich aus (s. Abb. 4).

pic004.png

Abb. 4: Einstellen der customUI-Definition für die aktuelle Anwendung

Schließen Sie den Dialog und die Datenbank und öffnen Sie sie nochmals neu. Wenn Sie nun zum Backstage-Bereich wechseln, finden Sie ganz unten die soeben definierte Schaltfläche (s. Abb. 5).

pic005.png

Abb. 5: Ein benutzerdefinierter Button im Backstage-Bereich

Platz schaffen

Im Gegensatz zum Office-Menü lassen sich im Backstage-Bereich alle eingebauten Elemente ausblenden. Bevor wir uns also um das Erstellen eigener Elemente im Backstage-Bereich kümmern, entsorgen wir erst einmal die vorhandenen Elemente.

Es gibt für jedes eingebaute Element im CustomUI einen eindeutigen Bezeichner, die sogenannte idMso. Diese idMso können Sie für viele Elemente ermitteln, indem Sie in den Access-Optionen zur Registerseite Symbolleiste für den Schnellzugriff wechseln, dort im linken Listenfeld den gewünschten Befehl ausfindig machen und mit der Maus darüberfahren. Es erscheint dann ein Tooltip-Text, der die englische idMso enthält (s. Abb. 6). Dort finden Sie allerdings nur die idMsos für Schaltflächen, nicht für Tabs, Gruppen und andere Struktur-Elemente des CustomUI. Eine komplette Liste aller idMsos stellt Microsoft daher in Form einer Excel-Tabelle zum Download bereit. Die für Access relevante Tabelle finden Sie im Download zu diesem Beitrag. Die Tabelle heißt AccessControls.xlsx.

pic006.png

Abb. 6: Ermitteln der idMso eingebauter customUI-Elemente

Wenn Sie die idMso etwa einer Schaltfläche des Backstage-Bereichs kennen, den Sie beispielsweise ausblenden möchten, können Sie diese Schaltfläche wie das oben beschriebene button-Element definieren.

Sie lassen allerdings das id-Attribut weg und ersetzen dieses durch das idMso-Attribut. Außerdem brauchen Sie natürlich kein label-Attribut anzugeben, denn eingebaute Steuerelemente besitzen bereits eine voreingestellte Beschriftung.

Da Sie das Steuerelement verbergen möchten, fügen Sie das Attribut visible hinzu und legen den Wert false fest. Für die Speichern-Schaltfläche sieht das etwa so aus:

<button idMso="FileSave" visible="false"/>

Auf die gleiche Weise verfahren Sie mit den übrigen Schaltflächen. Anschließend kümmern Sie sich um die Schaltflächen, welche die Anzeige verschiedener Bereiche rechts im Backstage bewirken - also beispielsweise Informationen oder Zuletzt verwendet.

Dies sind keine herkömmlichen button-Elemente, sondern tab-Elemente des Backstage-Bereichs.

Davon abgesehen verhalten sich diese allerdings genau so wie die button-Elemente, sodass Sie etwa den Eintrag Informationen mit der folgenden Zeile verschwinden lassen:

<tab idMso="TabInfo" visible="false"/>

Definieren Sie ein XML-Dokument wie in Listing 1, sieht der Backstage-Bereich wie in Abb. 7 aus. Leider sind dort immer noch die zuletzt verwendeten Datenbanken zu sehen. Die könnten Sie zwar theoretisch manuell entfernen, indem Sie auf der Registerseite Zuletzt verwendet die Eigenschaft Schnellzugriff auf die Anzahl von zuletzt verwendeten Datenbanken auf 0 einstellen, aber dadurch geschieht dies noch lange nicht auf anderen Rechnern, die diese Anwendung öffnen.

Listing 1: Diese Prozedur reagiert auf das Anklicken von Kontextmenüeinträgen.

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

    <backstage>

        <button idMso="FileSave" visible="false"/>

        <button idMso="ApplicationOptionsDialog" visible="false"/>

        <button idMso="SaveObjectAs" visible="false"/>

        <button idMso="FileCloseDatabase" visible="false"/>

        <button idMso="FileExit" visible="false"/>

        <button idMso="FileOpen" visible="false"/>

        <button idMso="FileSaveAsCurrentFileFormat" visible="false"/>

        <tab idMso="TabHelp" visible="false"/>

        <tab idMso="TabInfo" visible="false"/>

        <tab idMso="TabRecent" visible="false"/>

        <tab idMso="TabNew" visible="false"/>

        <tab idMso="TabPrint" visible="false"/>

        <tab idMso="TabShare" visible="false"/>

    </backstage>

</customUI>

pic007.png

Abb. 7: Fast der komplette Backstage-Bereich ist leer.

Leider gibt es auch keine Option, mit der sich diese Eigenschaft direkt unter VBA einstellen ließe - der hier eingestellte Wert befindet sich nämlich in der Windows-Registry. Aber auch die dort gespeicherten Werte lassen sich per VBA beinflussen, wenn auch nicht ganz so einfach. Genau genommen sind dazu die Anweisungen aus Listing 2 erforderlich - samt einigen API-Deklarationen und Konstanten, die Sie in der Beispieldatenbank im Modul mdlRegistry finden. Probieren Sie den Aufruf dieser Funktion im Direktfenster (Strg + G) aus und wechseln Sie dann zum Backstage-Bereich:

QuickAccessDisplay False

Listing 2: Diese Prozedur aktiviert und deaktiviert die Anzeige des Schnellzugriffs auf die zuletzt verwendeten Dateien.

Public Function QuickAccessDisplay(bol As Boolean)

    Dim kHnd As LongPtr

    Dim lngValue As Long

    Dim lngRtn As Long

    lngValue = Abs(bol)

    Const strSubKey = "Software\Microsoft\Office\14.0\Access\File MRU"

    Const strName = "Quick Access Display"

    lngRtn = RegOpenKeyEx(HKEY_CURRENT_USER, strSubKey, 0, KEY_SET_VALUE, kHnd)

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.