Kundenverwaltung mit Ribbon, Teil I

Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

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

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zahlenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Aktuell im Blog
Onlinebanking mit Access

Es ist geschafft: Endlich ist das Buch Onlinebanking mit Access fertiggeschrieben. Das war... [mehr]

Direktzugriff auf Tabellen und Felder

Die IntelliSense-Erweiterung für Tabellen und Felder hat mir soviel Spaß gemacht, dass ich gleich... [mehr]

IntelliSense für Tabellen und Felder

Wenn Sie mit dem VBA-Editor arbeiten und dort gelegentlich SQL-Anweisungen eingeben, müssen Sie... [mehr]

Download Access und SQL Server

Erfahren Sie, welche Schritte zum Download des aktuellen Stands des Buchs "Access und SQL Server"... [mehr]

Bilder in Access 2013

Wer die Bibliothek mdlOGL0710 von Sascha Trowitzsch oder ein ähnliches Modul aus meinen... [mehr]

Dynamische Ribbons

Immer wieder fragen Leser, wie man Ribbon-Elemente wie etwa Schaltflächen in Abhängigkeit... [mehr]

Die Blogmaschine

Einen kleinen Blog zusätzlich zum Shop zu betreiben ist eine tolle Sache. Hier lassen sich... [mehr]

Wegwerfadressen für die Newsletteranmeldung

Die Verwendung von Wegwerf-Adressen für die Nutzung aller möglichen Online-Dienste nimmt... [mehr]

Access und Facebook

Facebook und Access - das ist eine der wenigen Kombinationen, die ich noch nicht in die Mangel... [mehr]

Access und SQL Server - das Projekt

Mein neues Buch Access und SQL Server (gemeinsam mit Bernd Jungbluth) geht in die Endphase. Wer... [mehr]