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.
Verknüpfungen für Datenbankdateien erstellen
Nervt es Sie nicht auch, wenn Sie alle Jubeljahre mal eine Verknüpfung zum Starten einer Datenbankdatei erstellen – und dann mühsam den Pfad zur MSAccess.exe und zur betroffenen Access-Datenbank zusammentippen müssen? Mir geht es jedenfalls so. Deshalb habe ich ein schickes, kleines Add-In gebaut, mit dem Sie diese Aufgabe mit wenigen Mausklicks erledigen können. Wie es funktioniert und welche Techniken dahinterstecken, erfahren Sie im vorliegenden Beitrag.
Verknüpfungen zu Datenbankdateien haben durchaus ihren Sinn. Sie legen damit nicht nur fest, welche Version der MSAccess.exe verwendet werden soll (wenn überhaupt mehrere Versionen installiert sind), welche Datenbank zu öffnen ist und mit welchen Parametern dies geschehen soll.
Verknüpfungen haben in der Regel die Dateiendung .lnk und berücksichtigen im Icon die Anwendung, die geöffnet werden soll. Außerdem findet sich dort in der Regel ein Pfeil-Symbol. Der grundsätzliche Aufbau des Inhalts einer Verknüpfung sieht so aus:
"<Pfad zur MSAccess.Exe>" "<Pfad zur Access-Datenbank>" <Parameter>
Die ersten beiden Elemente fasst man sicherheitshalber in Anführungszeichen ein. Dies ist eigentlich nur nötig, wenn der Pfad Leerzeichen enthält, aber anderenfalls schadet es auch nicht.
Bild 1 zeigt ein Beispiel für die Eigenschaften einer Verknüpfung, welche die Datenbank für den exklusiven Zugriff öffnet.
Bild 1: Verknüpfungen zu Access-DatenbankenParameter gibt es durchaus eine ganze Menge, nämlich die folgenden:
- /excl: Öffnet die Datenbank für den exklusiven Zugriff.
- /ro: Öffnet die Datenbank für den schreibgeschützten Zugriff.
- /profile
: Startet Access mit einem anderen Benutzerprofil. - /compact
: Komprimiert und repariert die mit - /convert
: Konvertiert die mit angegebene Datei in die aktuelle Access-Version, also die Version der mit referenzierten Access-Anwendung. - /x
: Hier können Sie den Namen eines Makros angeben, das beim Start von Access aufgerufen werden soll. - /cmd: Hier können Sie eine Zeichenfolge angeben, die Sie nach dem Start der Datenbank mit der VBA-Funktion Command auslesen können.
Außerdem gibt es noch einige Parameter, die nur in älteren Access-Versionen zum Einsatz kamen. Die ersten drei stehen in Zusammenhang mit der Verwendung einer Arbeitsgruppen-Informationsdatei, Benutzergruppen und Benutzern:
- /user
: Übergibt den Benutzernamen, unter dem die Anwendung verwendet werden soll. - /pwd
: Übergibt das Kennwort für den Benutzer. - /wrkgrp: Gibt die Arbeitsgruppen-Informationsdatei an, die verwendet werden soll.
Zwei weitere Parameter sind ebenfalls veraltet, können aber aus Kompatibilitätsgründen noch verwendet werden:
- /runtime: Sorgt dafür, dass die Datenbank im Runtime-Modus geöffnet wird, also so, als ob nicht die Vollversion, sondern nur die Runtime-Version von Access installiert wäre.
- /repair: Frühere Access-Versionen (vor Access 2000) boten separate Funktionen zum Komprimieren und Reparieren an. Dies wird nun mit /compact erledigt.
- /nostartup: Öffnet Access ohne Startdialog. Diese Option scheint in den neueren Access-Versionen gar nicht mehr zu funktionieren.
Die Zusammenstellung der Pfade zur MSAccess.exe sowie zu der zu öffnenden Datenbankdatei und der Parameter wollen wir nun mithilfe eines kleinen Add-Ins erleichtern.
Add-In installieren
Das fertige Add-In finden Sie im Download unter dem Dateinamen AccessLinker.mda. Um das Add-In in Access verfügbar zu machen, starten Sie den Add-In-Manager von Access. Dazu nutzen Sie etwa unter Access 2010 den Ribbon-Eintrag Datenbanktools|Add-Ins|Add-In-Manager.
Klicken Sie im nun erscheinenden Dialog Add-In-Manager auf die Schaltfläche Neues hinzufügen... und wählen Sie die Datei AccessLinker.mda aus. Das war es schon – Sie finden nun einen neuen Eintrag namens AccessLinker in der Liste der Add-Ins.
Wenn Sie das Add-In aufrufen, ohne dass eine Datenbank geöffnet ist, erhalten Sie einen Hinweis, dass dieses Add-In nur in Verbindung mit einer geöffneten Datenbank funktioniert.
Anderenfalls erscheint nun das einzige Formular dieses Add-Ins (s. Bild 2).
Bild 2: Das Add-In zum Erstellen von Access-VerknüpfungenHier finden Sie folgende Elemente:
- Kombinationsfeld zur Auswahl bereits gespeicherter Konfigurationen
- Schaltfläche Neu: Legt eine neue Konfiguration an.
- Schaltfläche Löschen: Löscht die aktuell angezeigte Konfiguration.
- Textfeld zum Eingeben einer Bezeichnung für Konfiguration
- Textfeld Verknüpfung speichern unter zum Eingeben des Dateinamens für die zu erstellende Verknüpfung inklusive einer Schaltfläche, die einen Datei speichern-Dialog anzeigt
- Textfeld Pfad zur MSAccess.exe zur Eingabe des Pfades zur ausführbaren Datei MSAccess.exe inklusive Schaltfläche zum Anzeigen eines Datei öffnen-Dialogs
- Textfeld Pfad zur Datenbank zur Eingabe des Dateinamens der Datenbank, die durch die Verknüpfung geöffnet werden soll. Sie können dieses Feld leer lassen, wenn die Verknüpfung einfach nur Access öffnen soll.
- Weitere Steuerelemente, welche die Eingabe aller verfügbaren Kommandozeilenparameter erlauben
- Schaltfläche Verknüpfung erstellen, welche die .lnk-Datei nach den Vorgaben des Dialogs erstellt.
Add-In erstellen
Die Add-In-Datenbank erstellen wir gleich im Add-In-Verzeichnis von Access. Dieses finden Sie heraus, indem Sie zwei kurze Befehle im Direktbereich des VBA-Editors absetzen (s. Bild 3).
Bild 3: Ermitteln des Add-In-Verzeichnisses von AccessLegen Sie in diesem Verzeichnis eine neue Datenbank namens AccessLinker.mda an. Damit wir die Datenbank als Add-In installieren können, fügen Sie außerdem eine Tabelle namens USysRegInfo hinzu, die wie in Bild 4 aussieht. Die Tabelle enthält vier Datensätze. Der erste legt das Element Menu Add-InsAccessLinker in der Registry in dem für Access-Add-Ins vorgesehenen Zweig an. Die übrigen fügen einige Elemente hinzu. Der Eintrag mit dem Wert Expression im Feld ValName legt die VBA-Funktion fest, die beim Starten des Add-Ins ausgeführt werden soll. Description enthält die Beschreibung des Add-Ins. Library gibt die .mda-Datei an, welche die beim Aufruf des Add-Ins zu startende Funktion enthält.
Bild 4: Inhalt der Tabelle USysRegInfo des neu erstellten Add-InsZusätzlich passen Sie noch die Eigenschaften der Add-In-Datenbank an. Diese öffnen Sie etwa unter Access 2010, indem Sie mit einem Klick auf Datei den Backstage-Bereich öffnen und dort rechts auf Datenbankeigenschaften anzeigen und bearbeiten klicken.
Es erscheint der Dialog AccessLinker.mda Eigenschaften, in dem Sie wie in Bild 5 zum Registerreiter Zusammenfassung wechseln. Hier tragen Sie die entsprechenden Informationen für die Eigenschaften Titel, Firma und Kommentare ein.
Bild 5: Eigenschaften der Add-In-DatenbankBild 6 zeigt, wo die dort eingegebenen Eigenschaften wieder auftauchen – nämlich im Add-In-Manager, wenn Sie dort den Eintrag AccessLinker anklicken.
Bild 6: Hier erscheinen die Datenbank-Eigenschaften.Beim Start des Add-Ins
Wenn der Benutzer das Add-In über den Add-In-Manager registriert und über das Add-In-Menü startet, löst dies die in die Registry eingetragene Funktion Autostart aus. Diese fügen wir nun zu einem noch zu erstellenden Standardmodul namens mdlAddIn hinzu (s. Listing 1). Die Funktion soll zwei Aufgaben erfüllen. Die erste ist die Prüfung, ob zum Zeitpunkt des Öffnens des Menüs bereits eine Access-Datenbank geöffnet ist. Dazu prüft das Add-In die Anzahl der in der aktuellen Sitzung geöffneten Datenbanken mit der Count-Eigenschaft der Databases-Auflistung. Enthält diese den Wert 0, erhält der Benutzer eine Meldung, die ihn darauf hinweist, dass das Add-In nur bei geöffneter Datenbankdatei funktioniert. Anschließend wird das Add-In beendet.
Public Function Autostart()
If DBEngine.Workspaces(0).Databases.Count = 0 Then
MsgBox "Dieses Add-In funktioniert nur bei geöffneter Datenbankanwendung.", _ vbOKOnly + vbExclamation, "Keine Datenbank geöffnet."
Exit Function
End If
DoCmd.OpenForm "frmVerknuepfungErstellen", WindowMode:=acDialog
End Function
Listing 1: Diese Funktion wird beim Start des Add-Ins ausgelöst
Ist hingegen eine Datenbank geöffnet und somit die Eigenschaft Count größer als 0, öffnet die Funktion das Formular frmVerknuepfungErstellen als modalen Dialog.
Speichern der Konfigurationen
Bevor wir uns das Formular frmVerknuepfungErstellen im Detail ansehen, erstellen Sie noch die Tabelle tblKonfigurationen zum Speichern der verschiedenen Konfigurationen zum Anlegen der Verknüpfungen.
Diese sieht im Entwurf wie in Bild 7 aus und enthält die folgenden Felder (Informationen zu den einzelnen Optionen, deren Felder mit Option... beginnen, finden Sie weiter oben):
Bild 7: Entwurf der Tabelle tblKonfigurationen- KonfigurationID: Primärschlüsselfeld
- Bezeichnung: Bezeichnung der Verknüpfung (eindeutiges Pflichtfeld)
- VerknuepfungSpeichernUnter: Speicherort der Verknüpfung (Pflichtfeld)
- PfadAccess: Pfad zur MSAccess.exe (Pflichtfeld)
- PfadDatenbank: Pfad zur Datenbankdatei (kein Pflichtfeld)
- OptionExcl: Exklusiv öffnen?
- OptionRo: Schreibgeschützt öffnen?
- OptionProfile: Mit welchem Profil öffnen?
- OptionCompact: Komprimieren?
- OptionCompactZiel: In welche Datei komprimieren?
- OptionConvert: Konvertieren?
- OptionConvertZiel: In welche Datei konvertieren?
- OptionX: Welches Makro starten?
- OptionCmd: Kommandotext
- OptionNoStartup: Kein Startdialog
- OptionUser: Welcher Benutzer?
- OptionPwd: Welches Kennwort?
- OptionWrkgrp: Welche Arbeitsgruppen-Informationsdatei?
- OptionRuntime: Runtime-Modus?
- OptionRepair: Datenbank reparieren?
Das Add-In-Formular
Mit dieser Tabelle im Gepäck können wir uns an die Gestaltung des Formulars frmVerknuepfungErstellen begeben. Dieses sieht im Entwurf wie in Bild 8 aus. Das Formular binden Sie über die Eigenschaft Datenherkunft an die Tabelle tblKonfigurationen.
Bild 8: Entwurf des Formulars frmVerknuepfungErstellenAuf diese Weise können Sie direkt alle Felder der Tabelle tblKonfigurationen aus der Feldliste in den Detailbereich des Formulars ziehen. Die Felder richten Sie dann wie in der Abbildung aus. Benennen Sie die gebundenen Felder um, indem Sie für die Textfelder das Präfix txt und für die Kontrollkästchen das Präfix chk voranstellen.
Zu allen Feldern, die eine Angabe in Form eines Speicherorts erwarten, fügen Sie eine Schaltfläche mit drei Punkten (...) als Beschriftung hinzu.
Diese heißen cmdDatenbank (zum Ermitteln der aktuellen Datebank), cmdMSAccess (zum Ermitteln der Datei MSAccess.exe), cmdVerknuepfung (zum Eingeben des Namens der zu erstellenden Verknüpfung), cmdZielKomprimierung (für die Datei, die als Ergebnis einer Komprimierung entsteht) und cmdZielKonvertierung für das Ergebnis einer Konvertierung.
Formular starten
Um dem Benutzer die Arbeit zu erleichtern, wollen wir, wo möglich, direkt entsprechende Standardwerte einsetzen. Davon sind die drei Textfelder txtSpeicherort, txtPfadAccess und txtPfadDatenbank betroffen. Alle drei zeigen spezielle Pfadangaben an.
Die Zuweisung der Standardwerte geschieht gleich beim Öffnen des Formulars durch die Ereignisprozedur, die durch das Ereignis Beim Laden des Formulars ausgelöst wird. Diese Prozedur, die Sie in Listing 2 finden, enthält drei Anweisungen:
Private Sub Form_Load()
Me!txtSpeicherort.DefaultValue = Chr(34) & CurrentDb.Name & Chr(34)
Me!txtPfadAccess.DefaultValue = Chr(34) & SysCmd(acSysCmdAccessDir) & "MSAccess.exe" & Chr(34)
Me!txtPfadDatenbank.DefaultValue = Chr(34) & CurrentDb.Name & Chr(34)
End Sub
Listing 2: Einstellen der Standardwerte für die drei Textfelder txtSpeicherort, txtPfadAccess und txtPfadDatenbank
- Die Schaltfläche txtSpeicherort wird mit dem aktuellen Pfad der Datenbank gefüllt, der mit CurrentDb.Name ermittelt wird.
- Die ausführbare Datei MSAccess.exe können Sie aus dem Ergebnis der Funktion SysCmd(acSysCmdAccessDir), die das Verzeichnis dieser Datei liefert, und dem Dateinamen MSAccess.exe zusammenstellen.
- Schließlich fehlt noch der Name für die zu erstellende Verknüpfung. Diesen belegen wir ebenfalls mit dem Namen der aktuell geöffneten Datenbank vor, also mit CurrentDb.Name. Später wird diese Datei noch um die Dateiendung .lnk erweitert, damit diese als Verknüpfung interpretiert wird.
Da alle drei Ausdrücke als Werte für die Eigenschaft Standardwert (unter VBA DefaultValue) der Textfelder angelegt werden sollen, müssen wir diese außerdem noch in Anführungszeichen einfassen. Dies können wir enweder mit einem Ausdruck wie """" & ... & """" erledigen oder das Anführungszeichen durch die Funktion Chr(34) abbilden.
Pfade schnell auswählen
Damit der Benutzer diese Pfade leicht anpassen kann, haben wir diesen die bereits oben beschriebenen Schaltflächen zur Seite gestellt. Die Schaltfläche neben dem Textfeld txtPfadDatenbank heißt beispielsweise cmdDatenbank und löst für das Ereignis Beim Klicken die Prozedur aus Listing 3 aus.
Private Sub cmdDatenbank_Click()
Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.