Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Sie kennen sicher die verschiedenen Formular-Assistenten, mit denen Sie die verschiedensten Formulare automatisch erstellen können. Diese Assistenten nehmen einem die Arbeit ab, die Steuerelemente entsprechend einer zuvor ausgewählten Tabelle oder Abfrage in das Formular einzubauen. Aber tut einer dieser Assistenten genau das, was Sie sich wünschen Oder müssen Sie immer noch händisch nacharbeiten Falls ja, haben wir gute Nachrichten für Sie: Formular-Assistenten können Sie auch selbst bauen. Wie das funktioniert, zeigt der vorliegende Beitrag.
Unter Access 2003 und älter brauchen Sie nur zur Formular-Registerseite des Datenbankfensters zu wechseln und dort auf die Schaltfläche Neu zu klicken – schon erscheint der Dialog aus Bild 1, der die Auswahl eines der Formular-Assistenten erlaubt.
Bild 1: Auswahl der Formular-Assistenten unter Access 2003 und älter
Unter Access 2007 hat Microsoft die Menüstruktur ordentlich durcheinandergewirbelt. So sind einige der Assistenten direkt über das Ribbon verfügbar, und nur einige wenige Formular-Assistenten müssen noch über den von früheren Access-Versionen bekannten Dialog ausgewählt werden. Dieser verbirgt sich unter Access 2007 übrigens im Erstellen-Tab des Ribbons im Menüpunkt Weitere Formulare|Formular-Assistent (siehe Bild 2).
Bild 2: Unter Access 2007 findet man fast alle Formular-Assistenten gleich im Ribbon.
Eigener Formular-Assistent
Nun wollen wir, wie oben angekündigt, einen eigenen Formular-Assistenten entwickeln. Genaugenommen haben wir ein wenig übertrieben, denn dieser Beitrag beschreibt lediglich die grundlegenden Schritte. Nach der Lektüre können Sie .mda– oder .accda-Datenbankdateien erstellen, die vom Add-In-Manager von Access installiert werden und anschließend über den Dialog aus Bild 1 auswählen.
Dies löst dann eine Funktion aus, die Sie selbst festlegen können – und den Rest überlassen wir dann Ihnen. Sie können dann einen komplett eigenen Assistenten erstellen. Wie das aussehen kann, beschreiben wir im Beitrag Suchformular-Assistent (www.access-im-unternehmen.de/****) – bauen Sie diesen Assistenten einfach nach oder holen Sie sich dort einfach nur Anregungen.
Assistentbau im Überblick
Um einen Dummy-Formular-Assistenten an den Start zu bringen, sind die folgenden Schritte nötig:
- Erstellen einer leeren Datenbankdatei und speichern dieser Datei mit der Endung .mda oder .accda (vorzugsweise .mda, da diese Endung sowohl von Access 2003 und älter als auch von Access 2007 und neuer erkannt wird)
- Hinzufügen einer Tabelle namens USysRegInfo, welche die Informationen enthält, die beim Installieren des Add-Ins mit dem Add-In-Manager in die Registry geschrieben werden. Access liest diese Einträge später aus und erfährt so überhaupt erst, wo es welche Assistenten bereitstellen soll.
- Erstellen einer VBA-Funktion, die beim Starten des Assistenten aus dem Dialog Neues Formular heraus aufgerufen werden soll.
- Installieren des Add-Ins mit dem Add-In-Manager, sodass die .mda-Datei in das Verzeichnis der Access-Add-Ins kopiert und die Informationen aus der Tabelle USysRegInfo in die Registry geschrieben werden.
Anschließend sollte der Assistent bereits funktionieren – natürlich nur, wenn Sie alle kleinen Fallstricke kennen, auf die wir in den folgenden Abschnitten hinweisen.
Die Registry-Informationen
Der entscheidende Punkt beim Erstellen eines Add-Ins ist die Angabe der in die Registry einzutragenden Informationen in der Tabelle USysRegInfo.
Diese Tabelle müssen Sie zunächst erstellen. Sie sieht im Entwurf wie in Bild 3 aus. Achtung: Wenn Sie diese Tabelle angelegt und unter dem Namen USysRegInfo gespeichert haben, erscheint diese möglicherweise nicht im Datenbankfenster beziehungsweise im Navigationsbereich von Access.
Bild 3: Entwurf der Tabelle USysRegInfo
Der Grund ist, dass Access Objekte mit dem Präfix Usys genauso wie Msys als Systemobjekte interpretiert, die nur unter speziellen Bedingungen angezeigt werden. Sie müssen dazu die Eigenschaft Systemobjekte anzeigen in den Access-Optionen aktivieren.
Wenn Sie die Tabelle in der Datenblattansicht bearbeiten möchten, ohne ständig alle Systemtabellen zu sehen, können Sie diese allerdings auch über das Direktfenster des VBA-Editors (Strg + G) mit folgender Anweisung anzeigen:
DoCmd.OpenTable "USysRegInfo"
Nach dem Erstellen der Tabelle füllen Sie diese mit den entsprechenden Werten. Die Daten für unseren Dummy-Assistenten sehen wie in Bild 4 aus, das Ergebnis der Installation können Sie anschließend in der Registry begutachten (Windows-Startmenü, Ausführen…|Regedit). Hierzu sind einige Erläuterungen angebracht – zunächst zur Spalte Subkey. Diese enthält den Ort der Registry, an dem die Informationen der Tabelle eingetragen werden sollen.
Bild 4: Diese Daten landen nach dem Installieren des Add-Ins in der Registry.
Der erste Eintrag der Tabelle legt den Schlüssel selbst an: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access\Wizards\Form Wizards ist – mit Abweichungen bei der Office-Version – immer vorhanden, daher wird einfach ein Unterschlüssel mit dem Namen des Assistenten (hier Beispielformularassistent) hinzugefügt. Das hier ein Schlüssel hinzugefügt werden soll, erkennt der Add-In-Manager am Wert 0 der Spalte Type.
Die übrigen sechs Zeilen fügen dann die Daten des Schlüssels hinzu. Zuvor schauen wir uns noch an, was da genau im Feld Subkey steht:
HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Beispielformularassistent
Die hinteren Einträge finden wir in Bild 5 wieder, aber HKEY_CURRENT_ACCESS_PROFILE ist nirgends in der Registry zu finden.
Bild 5: So sieht die Registry nach dem Installieren unseres Add-Ins aus.
Des Rätsels Lösung ist, dass dieser Eintrag lediglich ein Platzhalter ist, der bei der Installation durch den Add-In-Manager durch den Schlüssel der Add-Ins in derRegistry ersetzt wird (hier HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access).
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo