Access macht Installationsarbeit

Customizing mit „einfachen“ Dateien

Angenommen, die Datenbankanwendung benötigt zum Betrieb irgendwelche Dateien wie Bilddateien oder Konfigurationsdateien, die in einem bestimmten Verzeichnis auf der Festplatte gespeichert sind. Dann haben Sie mit den beiden obigen Funktionen bereits gute Voraussetzungen geschaffen, diese auch bei der Weitergabe an andere Benutzer automatisch bereitzustellen. Sie müssen nur noch dafür sorgen, dass die Datenbank beim Start prüft, ob die benötigten Dateien schon im Dateisystem vorhanden sind, und sie gegebenenfalls dort speichert.

Als Verzeichnis für solche Dateien bietet sich dasjenige an, in dem sich auch die Datenbankdatei (also die .mdb-Datei) befindet. Erstens kann man diesen Pfad per CurrentProject.Path dynamisch ermitteln, und zweitens hat die Datenbank in der Regel Schreibrechte für dieses Verzeichnis.

Die Funktion, die das Vorhandensein der benötigten Dateien prüft, muss beim Start der Datenbank aufgerufen werden. Dafür hat man mehrere Möglichkeiten:

  • das Makro Autoexec mit der Anweisung AusführenCode oder

  • eines der Ereignisse, die beim Öffnen eines via Start-Optionen eingestellten Formulars ausgelöst werden.

Die meisten Anwendungen dürften dem Anwender zum Start irgendein Formular präsentieren, daher folgt nun die Beschreibung der passenden Vorgehensweise – der Einfachheit halber mit einem leeren Formular namens frmStart.

Damit dieses Formular beim Öffnen der Datenbankanwendung ebenfalls geöffnet wird, stellen Sie den Namen des Formulars über Extras/Start in der Option Formular/Seite anzeigen ein (Bild 4).

Bild 4: Einstellen eines beim Start der Anwendung zu öffnenden Formulars.
Bild 4: Einstellen eines beim Start der Anwendung zu öffnenden Formulars.

Damit die passenden Dateien beim Öffnen der Datenbank und damit des Formulars frmStart in das Datenbankverzeichnis geschrieben werden, fügen Sie zu dem Formular eine Prozedur hinzu, die durch das Ereignis Beim Öffnen ausgelöst wird (Listing 3). Wenn die Datei nicht im Datenbankverzeichnis vorhanden ist, ruft die Ereignisprozedur die Funktion TabelleInDatei auf, die für das Speichern der in der Tabelle tblDateien enthaltenen Datei sorgt.

Private Sub Form_Open(Cancel As Integer)
Dim strDatenbankpfad As String
Dim strDatei As String
strDatenbankpfad = CurrentProject.Path
strDatei = "Test.txt"
If Dir(strDatenbankpfad & "\" & strDatei) = "" Then
TabelleInDatei "Testdatei", strDatenbankpfad & "\" & strDatei
End If
End Sub