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 4/2017.

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

COM-Add-In-Ribbons mit dem XML-Designer

Wenn Sie in Visual Studio ein COM-Add-In für Access erstellen (wie im Beitrag »Access-Add-In mit VSTO«), können Sie zwei Möglichkeiten nutzen, um Ribbons für das Add-In hinzuzufügen. Der erste Weg nutzt einen grafischen Editor und wird bereits im genannten Beitrag beschrieben. Allerdings erlaubt dieser nicht, alle verfügbaren Elemente und Techniken zu nutzen. Genau genommen können Sie damit nur Tabs, Groups und die darin enthaltenen Steuer­elemente hinzufügen. Wenn Sie, wie Sie es von Access gewohnt sind, in die Vollen gehen wollen und etwa auch das Backstage anpassen oder eingebaute Ribbon-Schaltflächen mit neuen Funktionen versehen wollen, finden Sie im vorliegenden Artikel die richtigen Techniken.

Voraussetzungen

Um die in diesem Beitrag beschriebenen Techniken verwenden zu können, benötigen Sie ein COM-Add-In, das mit Access gestartet wird. Die Grundlagen dazu finden Sie im Beitrag Access-Add-In mit VSTO (www.access-im-unternehmen.de/1092). Der Beitrag beschreibt die Vorgehensweise für C#, Sie finden im Download aber auch ein für den Einsatz mit Access angepasstes COM-Add-In-Projekt. Auf diesem setzt dieser Beitrag auf. Außerdem verwenden wir Visual Studio 2015 in der Community Edition, die für einzelne Entwickler kostenlos verfügbar ist.

Hinweis

Alle wichtigen Grundlagen und Informationen sowie Listen der Callback-Funktionen für den Backstage-Bereich des Ribbons finden Sie auf der Internetseite mit dem Titel Einführung in die Office 2010-Backstage-Ansicht für Entwickler (aktueller LInk: https://msdn.microsoft.com/de-de/library/ee691833(office.14).aspx).

Die Grundlagen für den Ribbon-Teil finden Sie unter dem Titel Anpassen der Multifunktionsleisten-Benutzeroberfläche von Office (2007) für Entwickler - Teil 1 und den folgenden Teilen (aktueller Link: https://msdn.microsoft.com/de-de/library/aa338202.aspx).

Ribbon zum Add-In hinzufügen

Wie bereits erwähnt, gibt es zwei Möglichkeiten, ein Ribbon zu einem COM-Add-In auf Basis der VSTO-Vorlagen hinzuzufügen. Der erste Eintrag namens Menüband (Visueller Designer) liefert einen Designer, mit dem Sie das Ribbon per Drag and Drop aus der Toolbox zusammenstellen können. Dafür stehen aber nur die wichtigsten Elemente zur Verfügung. Wer bereits unter Access Ribbons definiert hat, wird hier einiges vermissen. In diesem Fall wählt man besser den Eintrag Menüband (XML) und gibt beispielsweise den Namen Ribbon_Access.vb an (s. Bild 1). Dies fügt zwei Klassen namens Ribbon_Access.vb und Ribbon_Access.xml zum Projekt hinzu. Damit die in der Datei Ribbon_Access.xml enthaltene Ribbon-Definition auf die Host-Anwendung, in diesem Fall Access, angewendet wird, kopieren Sie die noch auskommentierte Methode CreateRibbonExtensibilityObject aus dem Modul Ribbon_Access.vb in das Klassenmodul ThisAddIn.vb und entfernen die Kommentarzeichen:

Hinzufügen eines Ribbons mit der Vorlage Menüband (XML)

Bild 1: Hinzufügen eines Ribbons mit der Vorlage Menüband (XML)

Protected Overrides Function _
         CreateRibbonExtensibilityObject() _
         As Microsoft.Office.Core.IRibbonExtensibility
     Return New Ribbon_Access()
End Function

Diese Methode wird beim Starten des Add-Ins automatisch ausgeführt.

Die XML-Definition des Ribbons sieht standardmäßig wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
   <ribbon>
     <tabs>
       <tab idMso="TabAddIns">
         <group id="MyGroup"
                label="My Group">
         </group>
       </tab>
     </tabs>
   </ribbon>
</customUI>

Wenn Sie das Add-In nun starten, erscheinen allerdings keine neuen Elemente im Ribbon von Access. Der Grund ist einfach: Die automatisch erstellte Ribbon-Definition aus der Datei Ribbon_Access.xml versucht, eine Gruppe unterhalb eines Tab-Elements mit der idMso mit dem Wert TabAddIns anzulegen. Warum wird dieses Tab dann von der Vorlage als Ausgangspunkt für die Ribbon-Definition festgelegt? Ganz einfach: Weil es offiziell gar keine VSTO-Vorlage für Access-Add-Ins gibt, haben wir ja, wie im Beitrag Access-Add-In mit VSTO beschrieben, ein Excel-Add-In in ein Access-Add-In umgewandelt. Und unter Excel gibt es sehr wohl ein Ribbon-Tab namens TabAddIns. Wenn wir also einfach das eingebaute group-Element TabAddIns durch ein benutzerdefiniertes Element ersetzen, sollte es funktionieren.

Benutzerdefiniertes Tab mit Gruppe und Schaltfläche hinzufügen

Ein eingebautes tab-Element verwendet die für dieses Element festgelegte idMso (Übersicht der idMsos für alle Elemente siehe Datei AccessControl.xlsx aus dem Download von der Seite http://go.microsoft.com/fwlink/?LinkID=181052), um festzulegen, dass die darunter abgebildeten group-Elemente unterhalb des eingebauten Elements mit der angegebenen idMso angelegt werden sollen. Gegebenenfalls möchten Sie auch noch Elemente in eine eingebaute Gruppe einfügen, dann würden Sie auch für die Gruppe die entsprechende idMso angeben.

Wir wollen aber ein neues tab-Element erstellen, weshalb wir nicht die Eigenschaft idMso angeben, sondern mit id den Namen unseres benutzerdefinierten Elements. Dieses soll tabAddIn heißen. Darunter wollen wir zwei Gruppen anlegen, die jeweils eine Schaltfläche enthalten. Die erste Gruppe soll Befehle erhalten, die sich auf die Access-Anwendung selbst beziehen, die zweite Befehle, die sich auf die aktuell geöffnete Datenbank beziehen. Für den zweiten Teil arbeiten wir im Beitrag Datenzugriff per VSTO-Add-In (www.access-im-unternehmen.de/1094) noch eine Lösung heraus, mit der wir dafür sorgen können, dass die Elemente der zweiten Gruppe nur aktiviert sind, wenn Access gerade eine Datenbankanwendung geladen hat. Die Definition unseres Ribbons sieht somit wie in Listing 1 aus.

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.