Datei-Handling

Effektives Datei-Handling, oder: Viele Wege führen nach Rom

Neben der Nutzung von Datenbanken stellt der Zugriff auf (lokalen) Dateien die wohl häufigste Art der Datenspeicherung dar. Streng genommen handelt es sich bei Datenbanken letztendlich auch nur um Dateien, nur deren Verwaltung ist deutlich komplexer und nicht ohne „Hilfstechnologien“ zu bewerkstelligen.

Für den Zugriff auf Dateien stehen uns im Wesentlichen drei Technologien zur Verfügung:

  • Zugriff mit VB/A-Hausmitteln
  • Zugriff mit dem „Windows Scripting Host“ (nachfolgend WSH genannt)
  • Zugriff mit der Win32-API

Alle drei Varianten haben ihr Vor- und Nachteile, die letztendlich von der zu lösenden Aufgabe abhängig sind. Eine pauschale Bewertung ist daher nicht möglich.

Bevor man eine Datei bearbeiten kann, muss man sie ggf. suchen. Wir beginnen also damit, einen vorgegebenen Ordner nach bestimmten Dateien zu durchsuchen und das Ergebnis anzuzeigen.

Aufgabe: Suche alle INI-Dateien im Windows-Ordner.

Zunächst müssen wir ermitteln, welches der Windows-Ordner ist.

Unter Windows NT (2000, XP) könnte man voraussetzen, dass es sich um den Ordner C:\WINNT handelt, unter Windows 95 bzw. Windows Me müsste es sich um den Ordner C:\Windows handeln.

Jetzt könnte man versuchen, dass Betriebssystem zu ermitteln und danach einfach annehmen, dass o.g. Pfade je nach Betriebssystem gültig sind. Das ist jedoch nicht zu empfehlen, da sich beispielsweise Windows XP auch auf einem anderen Laufwerk als C: installieren lässt.

Das Windows-Verzeichnis lässt sich zuverlässig auf zwei verschiedene Art und Weisen ermitteln, mithilfe des WSH und mithilfe des Win32-API.

Um mit dem WSH arbeiten zu können, ist es notwendig, in seinem VBA Projekt einen Verweis auf die entsprechende Bibliothek zu setzen. Dazu muss man im VBA-Editor-Menü Extras - Verweise auf die SCRRUN.DLL im System32-Verzeichnis verweisen.

Hierdurch wird ein Verweis Microsoft Scripting Runtime in die Liste der Verweise aufgenommen bzw. angehakt. Dieser Verweis sollte fortfolgend für diesen Workshop gesetzt sein!