window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Dateibefehle

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

Schreibe einen Kommentar