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 3/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

Kundenverwaltung mit Ribbon, Teil I

Bild 1: Option zur Anzeige von Formularen im Registerkartenformat

Im Beitrag »Ribbonklassen« haben wir gezeigt, wie Sie das Ribbon allein mit VBA-Code definieren können. Nun wollen wir diese Technik in einer kleinen Beispielanwendung demonstrieren, in der wir eine Adressenliste in einem Formular anzeigen und alle Befehle zu dieser Adressenliste im Ribbon einbauen – also etwa, um einen neuen Datensatz anzulegen, einen bestehenden Datensatz zu löschen oder die Details zu einem Datensatz anzuzeigen.

Dabei nutzen wir in diesem Fall im Gegensatz zu den meisten anderen Anwendungen den standardmäßig eingestellten Wert Dokumente im Registerkartenformat der Option Dokumentfensteroptionen in den Access-Optionen. Die Option Dokumentregisterkarten anzeigen wollen wir allerdings deaktivieren (s. Bild 1).

Option zur Anzeige von Formularen im Registerkartenformat

Bild 1: Option zur Anzeige von Formularen im Registerkartenformat

Hauptformular der Anwendung erstellen

Anschließend erstellen wir ein Formular, das alle Datensätze der Tabelle tblKunden in der Datenblattansicht anzeigen soll. Normalerweise würden wir eine solche Ansicht als Unterformular in ein Hauptformular integrieren, um noch weitere Steuer­elemente für die Verwaltung der Daten in der Datenblattansicht bereitzustellen – etwa zum Anlegen neuer Datensätze, zum Löschen eines bestehenden Datensatzes oder auch um einen Datensatz zum Bearbeiten zu öffnen. Wenn wir allerdings einmal alle Befehle für den Zugriff auf die Adressdaten in das Ribbon verschieben, brauchen wir ja kein übergeordnetes Formular mehr.

Also legen Sie ein neues Formular an und speichern es unter dem Namen frmKundenuebersicht. Diesem Formular weisen Sie als Datenherkunft die Abfrage qryKunden zu, die alle Felder der Tabelle tblKunden enthält und diese alphabetisch nach dem Nachnamen der Lieferanschrift sortiert (s. Bild 2).

Datenherkunft für das Hauptformular

Bild 2: Datenherkunft für das Hauptformular

Registerkartenformat und Screenshots

Während ich den Screenshot dieser Abfrage machen möchte, stelle ich übrigens fest, warum ich persönlich nie mit der Option Dokumente im Registerkartenformat arbeite: Damit lassen sich einfach keine vernünftigen Screenshots einzelner Access-Objekte machen. Eine Abfrage etwa wird komplett über das Access-Fenster verteilt. Ich müsste nun das Access-Fenster zusammenschrumpfen, um alles in adäquater Größe knipsen zu können und müsste den Screenshot dann noch manuell beschneiden, weil der Abfrageentwurf in diesem Fall kein eigenes Fenster ist, das man mit gängigen Screenshot-Tools leicht erfassen könnte. Also werde ich während der Erstellung dieses Beitrags wohl oder übel zwischen den einzelnen Ansichten wechseln müssen ...

Hauptformular anlegen

Die soeben erstellte Abfrage qryKunden legen wir als Datenherkunft für ein neues Formular namens frmKundenuebersicht fest. Danach ziehen Sie alle Felder der Datenherkunft aus der Feldliste in den Detailbereich des Formularentwurfs (s. Bild 3). Damit die Daten in der Datenblattansicht angezeigt werden, legen Sie für die Eigenschaft Standardansicht den Wert Datenblatt fest.

Entwurf des Hauptformulars frmKundenuebersicht

Bild 3: Entwurf des Hauptformulars frmKundenuebersicht

Ein Wechsel in die Formularansicht zeigt das Formular mit den gewünschten Daten, das wir nun um einige Funktionen anreichern wollen – und zwar, indem wir diese in das Ribbon der Anwendung aufnehmen.

Um alle Features des Ribbons zu erläutern, wollen wir die Kundenübersicht allerdings nicht direkt beim Öffnen der Anwendung einblenden, sondern zunächst nur einen Ribbon-Eintrag anzeigen, der das Öffnen der Kundenübersicht erlaubt. Erst beim Öffnen dieser Übersicht sollen dann die für dieses Formular spezifischen Befehle im Ribbon angezeigt werden. Wie dies gelingt, erfahren Sie in den folgenden Abschnitten.

Hinweis: Wenn Sie diese Anwendung als reine Adressverwaltung nutzen wollen, die immer die Kundenübersicht anzeigen soll, können Sie das Formular frmKundenuebersicht natürlich auch direkt als Startformular angeben. Dann wird das von uns für dieses Formular festgelegte Ribbon automatisch mit eingeblendet.

Vorbereitungen für das Anlegen des Ribbons

Wenn Sie unsere Ribbon-Klassen nutzen wollen, um das Ribbon zu programmieren, müssen Sie zuvor einige Access-Objekte aus der Beispieldatenbank in Ihre Zieldatenbank importieren. Dabei handelt es sich um die folgenden Objekte (bei allen Objekten außer dem Makro AutoExec handelt es sich um Standard- oder Klassenmodule):

  • Startribbon
  • Ribbons
  • clsButton
  • clsControls
  • clsGroup
  • clsGroups
  • clsRibbon
  • clsSeparator
  • clsTabs
  • clsTab
  • mdlRibbonEnums
  • mdlRibbons
  • mdlTools
  • mdlZwischenablage
  • Makro AutoExec

Diese Objekte fügen Sie beispielsweise zur Zieldatenbank hinzu, indem Sie beide Datenbanken öffnen und nebeneinander platzieren und dann die Objekte von einem Navigationsbereich zum anderen ziehen.

Bevor Sie das Ribbon programmieren können, benötigen Sie auch noch einen Verweis auf die Bibliothek Microsoft Office x.0 Object Library (s. Bild 4). Diesen fügen Sie über den Verweise-Dialog hinzu (VBA-Editor, Menüeintrag Extras|Verweise).

Verweis auf die Office-Bibliothek

Bild 4: Verweis auf die Office-Bibliothek

Den Inhalt des Moduls StartRibbon ersetzen Sie nun durch die Codezeilen aus Listing 1. Wir wollen im Startribbon zwei Schaltflächen anzeigen: Eines zum Öffnen der Kundenübersicht und eine zum Beenden der Anwendung. Für diese Schaltflächen müssen wir Variablen des Typs clsButton deklarieren und mit dem Schlüsselwort With­Events ausstatten, da wir für diese ja Ereignisprozeduren hinterlegen wollen, die beim Anklicken der Button-Elemente ausgelöst werden.

Dim WithEvents btnKundenuebersicht As clsButton
Dim WithEvents btnBeenden As clsButton
Public Sub CreateRibbon()
     Dim objRibbon As clsRibbon
     Dim objTab As clsTab
     Dim objGroup As clsGroup
     Set objRibbon = Ribbons.Add("Main")
     With objRibbon
         .StartFromScratch = True
         Set objTab = .Tabs.Add("tabKundenverwaltung")
         With objTab
             .Label = "Kundenverwaltung"
             Set objGroup = .Groups.Add("grpUebersicht")
             With objGroup
                 .Label = "Übersicht"
                 Set btnKundenuebersicht = .Controls.Add(msoRibbonControlButton, "btnKundenuebersicht")
                 With btnKundenuebersicht
                     .Label = "Kundenübersicht"
                     .Size = msoRibbonControlSizelarge
                     .Image = "users3"
                 End With
                 .Controls.Add msoRibbonControlSeparator
                 Set btnBeenden = .Controls.Add(msoRibbonControlButton, "btnBeenden")
                 With btnBeenden
                     .Label = "Beenden"
                     .Size = msoRibbonControlSizelarge

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.