RDBMS-Tools als Add-In nutzen

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.

RDBMS-Tools als Add-In nutzen

Bild 1: Tabelle mit Add-In-Informationen

Die Beiträge RDBMS-Tools: Verbindungen verwalten und RDBMS-Tools: Tabellen verknüpfen stellen zwei praktische Formulare vor, die Sie vor der Benutzung in die Datenbank importieren müssen, bevor Sie diese dort nutzen können. Wenn Sie diese jedoch in verschiedenen Anwendungen einsetzen beziehungsweise immer verfügbar haben möchten, können Sie diese auch in Form von Add-Ins betreiben. Dazu sind allerdings einige Änderungen an den Formularen und weitere Ergänzungen notwendig. Welche das sind, zeigen wir Ihnen im vorliegenden Beitrag.

Um die Formulare einer Access-Anwendung als Add-In in anderen Access-Anwendungen verfügbar zu machen, indem Sie diese über das Ribbon-Menü Datenbanktools|Add-Ins|Add-Ins auswählen und anklicken, müssen Sie Access zunächst mitteilen, dass die entsprechenden Einträge dort angezeigt werden sollen. Dazu fügen Sie der Datenbank eine Tabelle namens USysRegInfo hinzu, die wie in Bild 1 aussieht. Im Gegensatz zu einigen anderen Beispielen für Add-Ins, die Sie bisher in Access im Unternehmen kennengelernt haben, wollen wir hier allerdings gleich zwei Add-Ins in einer Add-In-Datei unterbringen.

Tabelle mit Add-In-Informationen

Bild 1: Tabelle mit Add-In-Informationen

Deshalb gibt es jeden der fünf Einträge der Tabelle USysRegInfo auch zweimal – je einmal für das Add-In mit dem Eintrag RDBMSTools: Tabellen verknüpfen und für das Add-In mit dem Eintrag RDBMS-Tools: Verbindungen verwalten. Die Datensätze der Tabelle entsprechen prinzipiell Name-Wert-Paaren, wobei ValName den Namen und Value den Wert aufnimmt.

Dabei gibt Expression die beim Auswählen des Eintrags auszuführende Funktion an, Library die Datenbank, welche die Funktion enthält, Description liefert eine Beschreibung und Version gibt an, für welchen Access-Datenbanktyp das Add-In geeignet ist.

Der Wert 3 besagt hier, dass das Add-In nur für reine Access-Datenbanken, nicht jedoch für Access-Projekte (.adp-Dateien) zur Verfügung steht.

Nachdem Sie eine Datenbank mit dieser Tabelle ausgestattet und diese mit der Dateiendung .mda/.accda versehen haben, rufen Sie den Add-In-Manager auf (Ribbon-Eintrag Datenbanktools|Add-Ins|Add-Ins|Add-In-Manager). Klicken Sie auf die Schaltfläche Neues hinzufügen... und wählen Sie im folgenden Dialog die Add-In-Datei aus. Anschließend finden Sie diese wie in Bild 2 mit einigen weiteren Informationen im Add-In-Manager in der Liste der verfügbaren Add-Ins vor.

Installieren des neuen Add-Ins

Bild 2: Installieren des neuen Add-Ins

Schließlich tauchen beim nächsten Start von Access zwei neue Einträge in der Liste der verfügbaren Add-Ins auf (s. Bild 3).

Auswahl der beiden neuen Add-Ins

Bild 3: Auswahl der beiden neuen Add-Ins

Add-In-Einträge mit Leben füllen

Nun soll der erste Eintrag das Formular frmTabellenVerknuepfen öffnen, das wir im Beitrag RDBMS-Tools: Tabellen verknüpfen vorgestellt haben und der zweite Eintrag das Formular frmVerbindungszeichenfolgen aus dem Beitrag RDBMS-Tools: Verbindungen verwalten.

Dazu fehlt noch eine wichtige Entscheidung: Die beiden Tools greifen ja auf die beiden Tabellen tblVerbindungszeichenfolgen und tblTreiber zu, um die Verbindungszeichenfolgen erstens zu verwalten und zweitens zum Zwecke der Verknüpfung von Tabellen auf diese zuzugreifen. Nun stellt sich die Frage, wo wir diese Tabellen speichern sollen: In der Add-In-Datenbank oder in der Datenbank, in der wir die Verknüpfungen zu den RDBMS-Tabellen anlegen möchten.

Wir entscheiden uns dafür, die Tabellen in der jeweiligen Zieldatenbank zu installieren, damit die Verbindungsdaten für die jeweilige Backend-Datenbank immer direkt im entsprechenden Frontend gespeichert sind. Außerdem können Sie so auch noch VBA-Code zur Anwendung selbst hinzufügen, der sich die Inhalte der Tabelle tblVerbindungszeichenfolgen zunutze macht.

Wir müssen also beim Starten einer der beiden Add-In-Funktionen in der Datei RDBMSTools.mda jeweils prüfen, ob die Tabellen tblVerbindungszeichenfolgen und tblTreiber bereits in der aufrufenden Datenbank enthalten sind, und diese gegebenenfalls dort hinzufügen.

Weiter oben in der Tabelle USysRegInfo haben wir für die beiden Add-Ins die Funktionen AutostartTabellenVerknuepfen und AutostartVerbindungenVerwalten angegeben. Diese werden ausgelöst, wenn der Benutzer eines der Add-Ins über den entsprechenden Ribbon-Eintrag aufruft.

Beide sollen beim Start zunächst eine Prozedur namens TabellenErstellen aufrufen, die sich um die Tabellen kümmert, und dann erst das Formular für die jeweilige Add-In-Funktion. Die beiden VBA-Funktionen sehen wir folgt aus:

Public Function AutostartTabellenVerknuepfen()
     TabellenErstellen
     DoCmd.OpenForm "frmTabellenVerknuepfen"
End Function
Public Function AutostartVerbindungenVerwalten()
     TabellenErstellen
     DoCmd.OpenForm "frmVerbindungszeichenfolgen"
End Function

Die Prozedur TabellenErstellen finden Sie in Listing 1. Die Prozedur legt zunächst den Namen der Zieltabelle mit tblVerbindungszeichenfolgen fest und versucht, bei deaktivierter Fehlerbehandlung eine Tabelle dieses Namens in der aufrufenden Datenbank zu referenzieren. Dabei ist zu beachten, dass wir die aufrufende Datenbank mit der Variablen dbClient referenzieren, die wir mit der Funktion CurrentDb füllen.

Public Function TabellenErstellen()
     Dim dbClient As DAO.Database, dbAddIn As DAO.Database
     Dim strTabelle As String
     Dim tdf As DAO.TableDef, idx As DAO.Index, fld As DAO.Field
     Set dbClient = CurrentDb
     Set dbAddIn = CodeDb
     On Error Resume Next
     strTabelle = "tblVerbindungszeichenfolgen"
     Set tdf = dbClient.TableDefs(strTabelle)
     On Error GoTo 0
     If tdf Is Nothing Then
         dbClient.Execute "SELECT * INTO " & strTabelle & " FROM tblVerbindungszeichenfolgen IN '" & dbAddIn.Name _
             & "'", dbFailOnError
         dbClient.TableDefs.Refresh
         Set tdf = dbClient.TableDefs(strTabelle)
         Set idx = tdf.CreateIndex("PK" & strTabelle)
         With idx
             Set fld = idx.CreateField("VerbindungszeichenfolgeID")
             .Fields.Append fld
             .Primary = True
         End With
         tdf.Indexes.Append idx
         Set idx = tdf.CreateIndex("UK" & strTabelle)
         With idx
             Set fld = idx.CreateField("Bezeichnung")
             .Fields.Append fld
             .Unique = True
         End With
         tdf.Indexes.Append idx
         dbClient.Execute "DELETE FROM " & strTabelle, dbFailOnError
     End If
     Set tdf = Nothing
     On Error Resume Next
     strTabelle = "tblTreiber"
     Set tdf = dbClient.TableDefs(strTabelle)
     On Error GoTo 0
     If tdf Is Nothing Then

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

Bitte geben Sie die Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Ich habe die Datenschutzbestimmungen zur Kenntnis genommen.