Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
VBA bietet eine Reihe von Dateibefehlen, mit denen Sie Verzeichnisse anlegen, Verzeichnisse entfernen, das aktuelle Arbeitsverzeichnis ermitteln, das Arbeitsverzeichnis ändern, Dateien löschen und sogar komplette Verzeichnishierarchien neu anlegen. Dieser Artikel liefert die Grundlagen zu diesen Befehlen.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1206_Dateibefehle.mdb.
Dateizugriffe
Der Artikel Textdateien stellt die Möglichkeiten zum Erstellen und zum Lesen von Textdateien vor. Dort gibt es eine Methode namens Open, die je nach Dateimodus eine bestehende Textdatei öffnet oder eine neue Datei erstellt. Was hat das mit dem vorliegenden Artikel zu tun Ganz einfach: Die Open-Anweisung erwartet die Angabe des Dateinamens. Dabei können Sie wählen zwischen der Angabe des Dateinamens inklusive Verzeichnis oder nur des Dateinamens. Wenn Sie das Verzeichnis mit angeben, ist genau definiert, auf welche Datei die Open-Anweisung sich beziehen soll. Falls aber wie im folgenden Beispiel nur ein Dateiname angeben wurde, ermittelt VBA selbst den Pfad:
Open "Test.txt" For Input As #1
Aktuelles Verzeichnis ermitteln
Und woher bezieht VBA den Ort der betroffenen Datei Dieser wird intern gespeichert und kann über die Funktion CurDir ausgelesen werden. Ein Aufruf im Direktfenster des VBA-Editors sieht beispielsweise wie folgt aus:
Debug.Print CurDir
C:\Users\Andre\Documents
Das bedeutet, dass die Open-Anweisung dem Dateinamen ohne Angabe eines Verzeichnisses die intern gespeicherte und mit CurDir zu ermittelnde Pfadbezeichnung voranstellt.
Aktuelles Verzeichnis ändern
Wenn sich die Dateioperationen innerhalb einer Anwendung immer auf das gleiche Verzeichnis beziehen, ist es sinnvoll, dieses Verzeichnis an die eigenen Bedürfnisse anzupassen. Da trifft es sich gut, dass VBA mit ChDir auch eine Funktion zum Festlegen eines neuen aktuellen Verzeichnisses liefert. Sie können den Wert von CurDir beispielsweise auf den Pfad zur aktuell geöffneten Datenbank einstellen:
ChDir Currentproject.Path
Die anschließende Prüfung liefert das erwartete Ergebnis:
Debug.Print CurDir
C:\Daten\Fachartikel\AiUBasic\Basics\2012\06\Dateibefehle
CurDir liefert für jedes Laufwerk ein eigenes aktuelles Verzeichnis. Um das aktuelle Verzeichnis eines anderen Laufwerks als c:\ zu ermitteln, geben Sie den Laufwerksbuchstaben in Anführungszeichen als Parameter der CurDir-Funktion an:
Debug.Print CurDir("h")
h:\Daten
Wenn Sie das aktuelle Verzeichnis für ein bestimmtes Laufwerk ändern möchten, geben Sie einfach den kompletten Pfad samt Laufwerksbuchstaben an:
ChDir("h:\Daten\Accessprojekte")
Wie die folgende Prüfung ergibt, funktioniert es:
Debug.Print CurDir("h")
h:\Daten\Accessprojekte
CurDir liefert ohne Parameter standardmäßig das aktuelle Verzeichnis des Laufwerks c:\. Wenn Sie möchten, dass CurDir ohne Parameter das aktuelle Verzeichnis eines anderen Laufwerks liefert, stellen Sie das Standardlaufwerk entsprechend mit der Funktion ChDrive ein:
ChDrive "h"
CurDir liefert dann Folgendes:
Debug.Print CurDir
h:\Daten\Accessprojekte
Dateien löschen
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo