Hin und wieder benötigt man Code, um eine Tabelle zur Laufzeit erstellen zu können. Das geht am einfachsten mit den Data Definition Language (DDL)-Befehlen von SQL. Dummerweise verwendet man diese in der Regel recht selten, sodass dies selten ohne Recherche in der Onlinehilfe oder sonstigen Quellen funktioniert. In einem früheren Beitrag haben wir bereits die Techniken für das automatische Erstellen solcher Skripte auf Basis bestehender Tabellen vorgestellt. Warum also nicht einfachen einen Assistenten erstellen, der diese Funktion ständig verfügbar macht
Der Beitrag, auf den sich die Einleitung bezieht, heißt SQL-Datenbankschema auslesen und ist unter www.access-im-unternehmen.de/698 zu finden. Die dort vorgestellte Lösung umfasst ein Formular, mit dessen Kombinationsfeld Sie eine der Tabellen der aktuell geöffneten Datenbank auswählen können. Nach der Auswahl zeigt das Formular in einem Textfeld den SQL-Code an, der zum Erstellen dieser Tabelle nötig wäre.
Wenn Sie also keine große Lust haben, selbst den SQL-Ausdruck zusammenzustellen, sollten Sie einfach dieses Formular einsetzen. Dummerweise müssen Sie dieses dazu erst in die aktuelle Datenbank kopieren (zuzüglich einiger VBA-Module mit weiteren Funktionen), gegebenenfalls fehlende Verweise hinzufügen, das Formular manuell öffnen und so weiter.
Viel schöner wäre es doch, wenn Sie das Formular nicht erst integrieren, sondern dieses ganz einfach von jeder beliebigen Datenbank aus per Menüeintrag öffnen können! Kein Problem: Dafür gibt es schließlich Access-Add-Ins – Sie müssen die bestehende Lösung nur in ein Add-In umwandeln. Der vorliegende Beitrag zeigt, wie Sie dies erledigen und außerdem noch einige interessante Features hinzufügt.
Bild 1 zeigt schon einmal, wie der SQLDump-Assistent in Aktion aussieht. Sie können damit eine der Tabellen der aktuell geöffneten Datenbank auswählen und einen oder mehrere SQL-Anweisungen erstellen lassen, mit denen Sie die ausgewählte Tabelle nachbauen können. Dies gilt für die per SQL erreichbaren Features – Funktionen wie etwa die von Nachschlagefeldern lassen sich damit leider nicht umsetzen. Vielleicht wäre das aber etwas für eine erweiterte Fassung dieses Assistenten.
Bild 1: Der SQLDump-Assistent in Aktion
Von der .mdb- zur .mda-Datenbank
Um eine .mdb-Datei in eine .mda-Datei umzuwandeln, erledigen Sie zunächst einmal das Offensichtliche: Sie ändern die Dateiendung von .mdb in .mda. Das macht aus der Datenbankanwendung noch kein Access-Add-In, aber zumindest würde es nun schon einmal vom Add-In-Manager erkannt werden.
Ein Access-Add-In zeichnet sich aber auch dadurch aus, dass bestimmte Einträge in der Registry dafür sorgen, dass Access beim Start von dessen Existenz erfährt und an entsprechender Stelle die Möglichkeit zum Starten dieses Add-Ins anbietet.
In der Regel werden diese Einträge durch den Add-In-Manager von Access angelegt, den Sie etwa unter Access 2007 und neuer über den Ribbon-Eintrag Datenbanktools|Add-Ins|Add-In-Manager starten. Dieser führt zwei Dinge durch:
- Er kopiert die .mda– oder .accda-Datenbank in den Add-Ins-Ordner von Access.
- Er trägt die in der Tabelle USysRegInfo enthaltenen Daten in der Registry ein.
Dazu bereiten wir nun zunächst die Tabelle USysRegInfo vor, die wie in Bild 2 aussieht. Die Tabelle brauchen Sie nicht selbst zu erstellen, sondern kopieren diese aus der Beispieldatenbank zu diesem Beitrag. Die Tabelle enthält die folgenden Informationen:
Bild 2: Die Tabelle USysRegInfo für den SQLDump-Assistenten
- HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\SQLDump gibt an, an welche Stelle in der Registry die in den übrigen Feldern enthaltenen Informationen geschrieben werden sollen. HKEY_CURRENT_ACCESS_PROFILE wird dabei automatisch durch den der aktuellen Access-Version entsprechenden Pfad ersetzt, zum Beispiel HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\.
- Der erste Eintrag mit dem Wert 0 im Feld Type sorgt dafür, dass der Root-Eintrag für dieses Add-In vorgenommen wird.
- Der zweite Eintrag fügt ein Element namens Description mit einer kurzen Beschreibung hinzu.
- Der dritte Eintrag fügt ein Element namens Library hinzu, in diesem Fall |ACCDIR\SQLDump.mda. Der Ausdruck |ACCDIR wird durch das Add-In-Verzeichnis ersetzt, in das der Add-In-Manager die Datenbankdatei kopiert hat. Dieser Information benötigt Access beim Start, damit es weiß, in welcher Datei sich die Add-In-Funktionen befinden.
- Fehlt noch der letzte Eintrag namens Expression. Hier tragen Sie den Namen einer Funktion ein, die das Add-In startet. In diesem Fall heißt die Funktion Autostart, also tragen Sie =Autostart() ein.
Nach dem Installieren des Add-Ins mit dem Add-In-Manager finden Sie in der Registry (anzuzeigen mit Windows|Ausführen/Suchen|RegEdit) einige neue Einträge wie die aus Bild 3 vor.
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