Schaltflächen-Assistent

Access bietet für Einsteiger bereits einen Befehlsschaltflächen-Assistent an, der grundlegende Operationen unterstützt. Die Funktionen sind allerdings stark begrenzt und das Ergebnis ist nicht an die aktuellen Möglichkeiten von Access angepasst. Wir zeigen in diesem Beitrag, wie Sie selbst einen praktischen Assistenten zum schnellen Erstellen von Schaltflächen programmieren können. Vorher schauen wir uns an, was der eingebaute Assistent kann und was wir verbessern und ergänzen wollen.

Steuerelement-Assistenten unter Access

Neben den Assistenten, die Sie über den Ribbon-Eintrag Datenbank-tools|Add-Ins|Add-Ins starten können, gibt es auch einige Assistenten, die Sie beim Erstellen von Steuerelementen unterstützen sollen. Diese bietet Access standardmäßig beim Erstellen von Steuerelementen an.

Falls dies bei Ihnen nicht der Fall ist, wurde gegebenenfalls die entsprechende Option deaktiviert. Um die Steuerelement-Assistenten wieder zu aktivieren, öffnen Sie zunächst ein Formular in der Entwurfsansicht. Dann klicken Sie im Ribbon auf den Tab Entwurf und dann im Bereich Steuerelemente auf das Symbol zum Aufklappen weiterer Steuerelemente (siehe Bild 1).

Ausklappen weiterer Steuerelemente und Optionen

Bild 1: Ausklappen weiterer Steuerelemente und Optionen

Wenn die weiteren Optionen ausgeklappt sind, finden Sie unter der Liste aller eingebauten Steuerelemente den Eintrag Steuerelement-Assistenten verwenden (siehe Bild 2). Ist das Wizard-Symbol farbig hinterlegt, ist die Option aktiviert, sonst nicht. In diesem Fall aktivieren Sie die Option per Mausklick.

Aktivieren der Anzeige der Steuerelement-Assistenten

Bild 2: Aktivieren der Anzeige der Steuerelement-Assistenten

Der Befehlsschaltflächen-Assistent

Wenn Sie nun auf den Eintrag zum Anlegen einer neuen Schaltfläche klicken und dann auf die Stelle im Formularentwurf, an der die neue Schaltfläche erscheinen soll, zeigt Access den ersten Schritt des Befehlsschaltflächen-Assistenten an (siehe Bild 3). Hier können Sie im linken Listenfeld eine Kategorie auswählen wie beispielsweise Datensatznavigation und im rechten Listenfeld eine der Aktionen für diese Kategorie, zum Beispiel Datensatz suchen.

Erster Schritt des Befehlsschaltflächen-Assistenten

Bild 3: Erster Schritt des Befehlsschaltflächen-Assistenten

Mit einem Klick auf die Schaltfläche Weiter landen wir beim zweiten Schritt des Assistenten (siehe Bild 4).

Auswahl von Text und Bild für die Schaltfläche

Bild 4: Auswahl von Text und Bild für die Schaltfläche

Hier finden wir zunächst die Möglichkeit, zwischen Text und Bild als Inhalt der Schaltfläche zu entscheiden. Den Text können Sie direkt neben der passenden Option in ein Textfeld eingeben beziehungsweise anpassen. Für die Auswahl eines Bildes gibt es verschiedene Möglichkeiten. Die erste ist, das angebotene Bild für diese Aktion beizubehalten. Die zweite, die Option Alle Bilder anzeigen zu aktivieren und im Listenfeld neben der Option Bild eines von mehreren Bildern zu selektieren. Wählen Sie ein anderes Bild aus, zeigt der Assistent dieses direkt in der Vorschau links an.

Sie können auch auf Durchsuchen klicken. Das öffnet einen Bild auswählen-Dialog, mit dem Sie aus dem Dateisytem .bmp– oder .ico-Dateien auswählen können. Eine so ausgewählte Datei erscheint anschließend ebenfalls in der Vorschau.

Einen Klick weiter geben Sie noch den Namen für die Befehlsschaltfläche ein. Hier schlägt der Assistent die Bezeichnung Befehl1 vor. Wir ändern diese in cmdDatensatzSuchen.

Klicken Sie dann auf Fertigstellen, legt der Assistent die soeben konfigurierte Schaltfläche an – siehe Bild 5.

Eine per Befehlsschaltflächen-Assistent angelegte Schaltfläche

Bild 5: Eine per Befehlsschaltflächen-Assistent angelegte Schaltfläche

Schauen wir uns zunächst das Ergebnis des Assistenten an. Das Bild wurde direkt eingebettet. Die Schaltfläche hat den angegebenen Namen erhalten. Die Beschriftung, die ja nicht angezeigt wird, wurde entsprechend nicht geändert.

Ein Blick in den Bereich Ereignis des Eigenschaftenblatts zeigt, dass der Assistent ein Makro angelegt hat und keine VBA-Prozedur (siehe Bild 6). Wir werfen noch einen Blick auf das erstellte Makro.

Der Assistent hat ein Makro für die Schaltfläche hinterlegt.

Bild 6: Der Assistent hat ein Makro für die Schaltfläche hinterlegt.

Dazu klicken wir auf die Schaltfläche mit den drei Punkten neben der Eigenschaft Beim Klicken. Dies öffnet den Entwurf des Makros aus Bild 7, der die Makro-Variante des Suchen-Befehls definiert.

Das vom Assistenten angelegte Makro

Bild 7: Das vom Assistenten angelegte Makro

Verbesserungsideen

Beim Durchlaufen des eingebauten Befehlsschaltflächen-Assistenten sind uns die folgenden Verbesserungsvorschläge eingefallen:

  • Warum sollte eine Schaltfläche nur Text oder Icon anzeigen Wir wollen die Möglichkeit schaffen, beides anzuzeigen.
  • Die Bild-Datei wird direkt in die Schaltfläche eingebettet. Access bietet aber die Möglichkeit, Bilder etwa für Schaltflächen und andere Anwendungszwecke in der Tabelle MSysResources zu speichern. Die dort gespeicherten Bilder können wiederverwendet werden. Das sollte unser Assistent realisieren.
  • Der Benutzer hat kaum Gestaltungsmöglichkeiten bezüglich des Designs der Schaltfläche. Hier wollen wir die Vorgabe von verschiedenen Eigenschaften erlauben.
  • Makros haben zwar den Vorteil, dass Einsteiger diese leichter programmieren können. Allerdings sind diese wesentlich unflexibler als VBA-Ereignisprozeduren. Daher wollen wir keine Makros verwenden.
  • Der Benutzer soll verschiedene Sätze von Anweisungen anlegen können, die er beim Anlegen einer neuen Schaltfläche auswählt – oder er entscheidet sich, eine leere Ereignisprozedur zu definieren.
  • Wenn der Benutzer die Beschriftung eingibt, soll nach bestimmten Kriterien direkt der Name des Steuerelements ermittelt werden.

Erstellen eines Steuerelement-Add-Ins

Damit machen wir uns an die Arbeit. In den ersten Schritten wollen wir den Assistenten erstellen, damit dieser beim Anlegen einer neuen Schaltfläche als Formular angezeigt wird. Dazu legen Sie zunächst eine neue Access-Datenbankdatei an und ändern ihre Dateiendung in .accda. Dann fügen Sie eine neue Tabelle namens USysRegInfo hinzu.

Diese füllen Sie wie in Bild 8. Die Daten, die in dieser Tabelle gespeichert sind, werden beim Installieren des Add-Ins über den Add-In-Manager von Access abgefragt und in die Registry eingetragen.

Die Tabelle USysRegInfo mit den Daten für die Registry

Bild 8: Die Tabelle USysRegInfo mit den Daten für die Registry

Die Einträge der Tabelle USysRegInfo haben die folgende Bedeutung. Das Feld Subkey enthält den Schlüssel, in dem die Daten abgelegt werden. Das Feld Type enthält einen Zahlenwert für den Datentyp. ValName enthält den Namen des Registry-Eintrags und Value den Wert:

  • Can Edit: Gibt an, ob das Add-In nur zum Anlegen von Steuerelementen bereitsteht (0) oder auch zum Bearbeiten vorhandener Steuerelemente (1).
  • Description: Beschreibung des Add-Ins, die in der Liste der Steuerelement-Add-Ins auftaucht, wenn der Benutzer ein neues Steuerelement anlegt.
  • Function: Name der VBA-Funktion, die beim Aufrufen des Add-Ins über die Benutzeroberfläche aufgerufen wird, ohne Gleichheitszeichen und Klammern, also nicht =Funktionsname(), sondern schlicht Funktionsname.
  • Library: Gibt den Pfad zu der Add-In-Datenbank an. Hier verwenden wir als Platzhalter den Wert |ACCDIR. Dieser wird beim Installieren durch den Pfad ersetzt, in dem sich die Add-Ins für den aktuellen Benutzer auf diesem Rechner befinden.
  • Version: Gibt an, ob das Add-In nur in reinen Access-Datenbanken (.mdb/.accdb, Wert 1) angezeigt wird, in Access-Projekten (.adp, Wert 2) oder in beiden (Wert 3).

Funktion für den Add-In-Start anlegen

Die für die Eigenschaft Function angegebene Funktion hat im Gegensatz zu der in Menü-Add-Ins zwei Parameter. Diese übergeben den Namen des Formular- oder Berichtsobjekts sowie den Steuerelementnamen.

Wir legen in einem Standardmodul die folgende öffentlich verfügbare Funktion an, welche die Parameter zunächst in einem Meldungsfenster ausgibt:

Public Function Autostart(strCtlName As String,  strObjectName As String) As Variant
     MsgBox "Add-In Gestartet." & vbCrLf & vbCrLf  & "ObjectName: " & strObjectName & vbCrLf  & vbCrLf & "CtlName: " & strCtlName
End Function

Datenbankeigenschaften festlegen

Damit der Add-In-Manager nach der Installation des Add-Ins bestimmte Einträge anzeigt, stellen Sie diese vorher ein. Das erledigen Sie, indem Sie im Ribbon auf Datei klicken und dann im Backstage-Bereich auf den Befehl Informationen. Im nun erscheinenden Bereich finden Sie einen Link namens Datenbankeigenschaften anzeigen und bearbeiten. Dieser öffnet den Eigenschaften-Dialog für die aktuelle Datenbank. Hier tragen Sie Werte für die Eigenschaften Titel, Firma und Kommentare ein (siehe Bild 9). Diese werden Sie gleich im Add-In-Manager wiederfinden.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar