Die Dir-Funktion

Die Dir-Funktion ist ein echter Tausendsassa: Sie ermöglicht sowohl das Prüfen des Vorhandenseins von Dateien als auch das Ermitteln von Dateien innerhalb eines Verzeichnisses. Dabei gilt es jedoch, einige Klippen zu umschiffen: Anderenfalls treten schnell nicht erklärbare Fehler in Ihrer Datenbank auf. Dieser Beitrag zeigt, wie Sie die Dir-Funktion für verschiedene Anwendungszwecke einsetzen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1207_Dir.mdb.

Vorhandensein von Verzeichnissen oder Dateien prüfen

Ein einfacher Aufruf der Dir-Funktion, beispielsweise im Direktfenster des VBA-Editors abgesetzt (zu öffnen mit Strg + G, siehe Bild 1), löst einen Fehler aus:

 Dir()

Und das, obwohl IntelliSense die Parameter dieser Funktion bei der Eingabe im Direktfenster in eckigen Klammern anzeigt, was schlicht bedeutet, dass es sich dabei um optionale Parameter handelt (siehe Bild 1).

IntelliSense zeigt die Parameter als optional an

Bild 1: IntelliSense zeigt die Parameter als optional an

Der Grund ist, dass diese Funktion zumindest beim ersten Aufruf einen Ausdruck für den ersten Parameter erwartet. Hier geben Sie im einfachsten Fall eine leere Zeichenkette an:

Dir(“”)

Dies liefert die erste Datei des aktuellen Verzeichnisses. Welches Verzeichnis hiermit gemeint ist, erfahren Sie durch den Aufruf der Funktion CurDir. Dies liefert beispielsweise folgendes Ergebnis:

  CurDir
C:\Users\Andre\Documents

Auf das in CurDir hinterlegte Verzeichnis sollten Sie sich jedoch nicht verlassen, sondern stattdessen explizit angeben, auf welches Verzeichnis oder auf welche Datei sich die Dir-Funktion beziehen soll (Sie können natürlich auch die ChDir-Funktion nutzen, um das aktuelle Verzeichnis festzulegen).

Wenn Sie prüfen möchten, ob ein Verzeichnis oder eine Datei existiert, geben Sie den Verzeichnis- oder Dateinamen inklusive Pfad als Parameter an. Um zum Beispiel herauszufinden, ob eine Datei existiert, geben Sie den kompletten Pfad wie folgt an:

 Dir("c:\Test.txt")

Sollte es eine entsprechende Datei im Verzeichnis c:\ geben, liefert diese Funktion den Namen der Datei ohne Pfad als Ergebnis, also etwa Text.txt.

Wenn Sie hingegen die Existenz eines Verzeichnisses prüfen möchten, müssen Sie zusätzlich den Wert vbDirectory für den zweiten Parameter der Dir-Funktion übergeben:

  Dir(CurrentProject.Path, vbDirectory)
VBA_Dir

Da CurrentProject.Path in diesem Fall den Wert C:\Daten\Fachartikel\AiUBasic\Basics\2012\07\VBA_Dir enthält, liefert die Funktion den Namen des aktuellen Verzeichnisses zurück, also VBA_Dir.

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar