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 5/2013.

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

Globale Ribbon-Anpassung

Es gibt verschiedene Wege, das Access-Ribbon anzupassen – und diese variieren auch noch von der jeweils verwendeten Access-Version. Dies gilt für allem für die Möglichkeiten, das Ribbon von Access global direkt über die Benutzeroberfläche anzupassen – hier entwickelt sich Access von Version zu Version weiter. Globale Anpassung meint solche Änderungen, die unabhängig von der aktuell geladenen Anwendung durchgeführt werden sollen und somit etwa Elemente der Entwicklungsumgebung ansteuern sollen. Dieser Beitrag zeigt eine Erweiterung, mit der Sie die gewünschten Änderungen dauerhaft anwenden können.

Arten der Ribbon-Anpassung

Es gibt verschiedene Wege, das Ribbon von Access anzupassen. Der erste und Ihnen vermutlich bereits bekannte Weg besteht darin, die Tabelle USysRibbons mit einer entsprechenden Ribbon-Definition zu füllen und den Namen der Ribbon-Definition mit einer entsprechenden Eigenschaft einzustellen.

Die Änderungen werden dann geladen, wenn Sie die Anwendung starten – und sind somit anwendungsbezogen.

Einfache Änderungen der eingebauten Ribbon-Elemente realisieren Sie je nach Access-Version über die Benutzeroberfläche. Die Änderungen werden dann in einer entsprechenden Datei gespeichert, die beim Start von Access eingelesen und angewendet wird. Auf Details wollen wir an dieser Stelle nicht eingehen.

Stattdessen schauen wir uns eine sehr flexible Variante an, die aus einer einzigen DLL sowie einer Konfigurationsdatei besteht. Die DLL namens InstantRibbonChanger.dll muss zunächst registriert werden (mehr dazu weiter unten). Außerdem müssen Sie die gewünschten Anpassungen des Ribbons in einer Konfigurationsdatei namens InstantRibbonChanger.ini definieren.

Dabei bedienen wir uns genau der gleichen Syntax, die auch für das Definieren der Ribbons per XML zum Einsatz kommt.

Die Datei sieht beispielsweise wie in Listing 1 aus.

[Access]
<?xml version="1.0" encoding="iso-8859-1"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
   <ribbon>
     <tabs>
       <tab idMso="TabHomeAccess">
         <group id="grp1" insertBeforeMso="GroupViews" label="Datenbank">
           <control idMso="FileBackupDatabase" label="Sichern"/>
           <control idMso="FileCompactAndRepairDatabase" label="Komprimieren"/>
           <control idMso="SourceControlOptions" label="Eigenschaften"/>
           <control idMso="FileNewDatabase" label="Neu"/>
           <control idMso="FileOpenDatabase" label="Öffnen"/>
           <control idMso="PrintDialogAccess" label="Drucken"/>
         </group>
	<group id="grp2" label="Test">
           <button id="btnTest" onAction="RunAddIn" label="Test" 
             tag="C:\Users\Andre\AppData\Roaming\Microsoft\AddIns\RibbonAdmin2010.Autostart" />
         </group>
       </tab>
     </tabs>
   </ribbon>
</customUI>

Listing 1: Beispiel für die Anpassung des Ribbons von Access

Den Beginn macht das Schlüsselwort [Access]. Dies ist notwendig, da die DLL nicht nur das Ribbon von Access, sondern auch von anderen Office-Anwendungen wie Word, Excel oder PowerPoint anpassen kann.

Den Abschnitt für die übrigen Anwendungen leiten Sie dann beispielsweise mit einem der Schlüsselwörter [Word], [Excel] oder [PowerPoint] ein.

Das hier vorgestellte Beispiel fügt dem tab-Element TabHomeAccess eine neue Gruppe hinzu, die direkt vor der Gruppe Ansicht eingefügt werden soll (insertBeforeMso="GroupViews").

Die neue Gruppe enthält einige Befehle, die sonst nur im Office-Menü beziehungsweise im Backstage-Bereich enthalten sind finden. Nach dem Anwenden der neuen Ribbon-Definition sieht das Start-Tab von Access wie in Bild 1 aus.

Elemente des Office-Menüs oder Backstage-Bereichs im Start-Tab des Ribbons

Bild 1: Elemente des Office-Menüs oder Backstage-Bereichs im Start-Tab des Ribbons

Erstellen-Tab entschlacken

Das zweite Beispiel blendet alle eingebauten Elemente des Erstellen-Tabs aus und zeigt nur die jeweils zum Erstellen eines Objekts in der Entwurfsansicht nötigen Elemente an (s. Bild 2).

Anpassung des Erstellen-Tabs auf die Belange eines professionellen Entwicklers – also ohne all die Assistenten et cetera

Bild 2: Anpassung des Erstellen-Tabs auf die Belange eines professionellen Entwicklers – also ohne all die Assistenten et cetera

Dazu bezieht sich die Ribbon-Definition jeweils auf die eingebauten group-Elemente wie GroupCreateTables, GroupCreateForms et cetera und blendet diese durch Einstellen des Attributs visible auf den Wert false aus. Anschließend fügt sie für jeden Objekttyp eine benutzerdefinierte Gruppe hinzu und legt darin jeweils die Schaltfläche zum Anlegen eines neuen Exemplars des jeweiligen Objekttyps ab – zum Beispiel CreateTableInDesign­View oder CreateQueryInDesignView (s. Listing 2).

[Access]
<?xml version="1.0" encoding="iso-8859-1"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
   <ribbon>
     <tabs>
       <tab idMso="TabCreate">
         <group idMso="GroupCreateTables" visible="false"/>
         <group idMso="GroupCreateForms" visible="false"/>
         <group idMso="GroupCreateReports" visible="false"/>
         <group idMso="GroupCreateOther" visible="false"/>
         <group id="id30860" label="Tabellen">
           <control idMso="CreateTableInDesignView" size="large"/>
         </group>
         <group id="id30861" label="Abfragen">
           <control idMso="CreateQueryInDesignView" size="large"/>
         </group>
         <group id="id30862" label="Formulare">
           <control idMso="CreateFormInDesignView" size="large"/>
         </group>
         <group id="id30863" label="Berichte">
           <control idMso="CreateReportInDesignView" size="large"/>
         </group>
         <group id="id30865" label="Makros">
           <control idMso="CreateMacro" size="large"/>
         </group>
         <group id="id30864" label="VBA">
           <control idMso="CreateModule" description="large" size="large"/>
           <control idMso="CreateClassModule" size="large"/>
         </group>
       </tab>
     </tabs>
   </ribbon>
</customUI>

Listing 2: Vereinfachte Erstellung von Access-Objekten über das Ribbon

Schneller Zugriff auf neue Steuerelemente im Entwurf

Eine weitere sinnvolle Erweiterung speziell ab Access 2010 ist eine geänderte Darstellung der verfügbaren Steuerelemente im Formularentwurf. Diese werden standardmäßig sehr klein und unvollständig angezeigt (s. Bild 3). Für die Ansicht aller verfügbaren Elemente muss man zunächst noch die Liste aufklappen.

Ungünstige Darstellung der Steuerelemente im Formularentwurf

Bild 3: Ungünstige Darstellung der Steuerelemente im Formularentwurf

Es wäre doch gelacht, wenn wir diese Ansicht nicht entsprechend eindampfen könnten – sodass wie in Bild 4 alle Befehle zum Anlegen von Steuerelementen als kleine Symbole gleich neben dem Steuerelement zum Auswählen der Ansicht erscheinen.

Alle Steuerelemente im Überblick

Bild 4: Alle Steuerelemente im Überblick

Dazu fügen Sie die Zeilen aus Listing 3 zur Konfigurationsdatei hinzu. In diesem Beispiel blenden wir die komplette Gruppe mit der Beschriftung Steuerelemente aus, die den Namen GroupControlsAccess trägt. Die Gruppe ist nicht Bestandteil eines herkömmlichen eingebauten tab-Elements, sondern wird erst im Kontext der Entwurfsansicht eines Formulars eingeblendet. Wir benötigen daher unterhalb des ribbon-Elements zunächst das contextualTabs-Element und dann das tabSet-Element namens TabSetFormTools. Dieses wiederum enthält das tab-Element TabFormToolDesigns, in dem sich die auszublendende Gruppe GroupControlsAccess befindet.

[Access]
<?xml version="1.0" encoding="iso-8859-1"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
     <contextualTabs>
       <tabSet idMso="TabSetFormTools">
         <tab idMso="TabFormToolsDesign">
           <group idMso="GroupControlsAccess" visible="false"/>
           <group id="grpSteuerelemente" label="Steuerelemente" 
               insertAfterMso="GroupViews">
     	    <control idMso="FormControlEditBox" label=" "/>
     	    <control idMso="FormControlLabel" label=" "/>
  	    <control idMso="FormControlButton" label=" "/>
  	    <control idMso="ControlTabControl" label=" "/>

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.