VBA: Datei, Verzeichnis und Explorer-Funktionen

Zusammenfassung

Sie lernen eine Klasse kennen, die Methoden und Eigenschaften zum Auswählen von Dateien und Verzeichnissen liefert.

Techniken

Klassen, Dateiauswahl

Voraussetzungen

Access 97 oder höher

Beispieldateien

Dateien_Beispiel97.mdb

Dateien_Beispiel00.mdb

Filedialog.cls

André Minhorst, Duisburg

Das Auswählen von Dateien ist auch mit dem seit Access XP beziehungsweise Office XP zur Verfügung stehenden Filedialog-Objekt noch lange kein Zuckerschlecken. Mit einer im Internet frei verfügbaren Klasse lassen sich Dialoge zum Auswählen von Dateien und Verzeichnissen mit Access ab Version 97 anzeigen.

Viele Access-Anwendungen benötigen eine Möglichkeit, Dateien oder Pfade auszuwählen. Seit Access XP bietet Access dazu ein Objekt – das aber nicht für alle Fälle geeignet ist. So lässt sich etwa kein Dialog zum Speichern von Dateien anzeigen.

Abhilfe schafft die etablierte Filedialog-Klasse von Karsten Pries (http://www.kpries.de/Entwicklertools/filedialog.htm). Sie ist unter allen gängigen Access-Versionen einsetzbar und bietet Dialoge zum Auswählen von Verzeichnissen, zu öffnenden und zu speichernden Dateien.

Importieren der Klasse

Die Klasse lässt sich leicht in eigene Anwendungen integrieren. öffnen Sie einfach das VBA-Projekt der Anwendung und importieren Sie den Inhalt der Datei Filedialog.cls in ein neues, leeres Klassenmodul.

Einsatz der Klasse

Die Klasse Filedialog bietet Methoden und Eigenschaften, um Dateiauswahldialoge anzuzeigen und den eigenen Wünschen anzupassen. Mit den in Quellcode 1 abgedruckten Zeilen machen Sie die Klasse in einer Routine verfügbar.

Quellcode 1: Filedialog-Objekt instanzieren

Public Sub Filedialogbeispiel()
    Dim objFiledialog As clsFiledialog
    Set objFiledialog = New clsFiledialog
    ''... Filedialog verwenden
    Set objFiledialog = Nothing
End Sub

Auswahldialoge

Das Objekt bietet drei verschiedene Dialoge an. Jeden Dialog ruft man mit einer anderen Methode auf, die per IntelliSense angeboten wird (siehe Bild 1).

Bild 1: Auswahl einer Methode zum Anzeigen eines Dialogs

Mit diesen drei Anweisungen lässt sich auch die kürzeste Fassung des Aufrufs bewerkstelligen. Die folgende Anweisung zeigt einen Datei auswählen-Dialog an und gibt anschließend den Namen der ausgewählten Datei aus:

Bild 2: Beispielformular zum Anzeigen eines Datei auswählen-Dialoges

Bild 3: Datei auswählen-Dialog

MsgBox objFiledialog.ShowOpen

An der Anzeige des Dialogs lassen sich noch einige Anpassungen vornehmen.

Quellcode 2: Anzeige eines Dateidialogs und übernahme der ausgewählten Datei in ein Textfeld

Private Sub cmdAuswaehlen_Click()
    Dim objFiledialog As clsFiledialog
    Set objFiledialog = New clsFiledialog
    With objFiledialog
        .DialogTitle = "Datei auswählen"
        .Filter1Suffix = "*.*"
        .Filter1Text = "Alle Dateien"
        Me!txtDatei = .ShowOpen
    End With
    Set objFiledialog = Nothing
End Sub

Nachfolgende Liste enthält einige Eigenschaften und deren Beschreibung:

  • DialogTitle: Titel des Fensters
  • DefaultExt: Standardendung, falls keine Endung gewählt
  • DefaultDir: beim öffnen angezeigtes Verzeichnis
  • DefaultFilename: filtert nach diesem Dateinamen.
  • MultiSelect: ermöglicht das Auswählen mehrerer Dateien gleichzeitig.
  • Filter1Text, Filter2Text,…: Beschriftung eines Filters, etwa “Access-Dateien”
  • Filter1Suffix, Filter2Suffix,…: Endung, nach der gefiltert werden soll
  • Das Formular frmDateienAuswaehlenUndOeffnen enthält einige Beispiele. Die oberste Auswählen-Schaltfläche zeigt einen Dialog zum Auswählen einer Datei an (siehe Bild 2).
  • Die durch die Schaltfläche ausgelöste Prozedur finden Sie in Quellcode 2. Sie öffnet den Dialog aus Bild 3. Anschließend schreibt sie den ausgewählten Dateinamen in das im Formular enthaltene Textfeld.

    Die mittlere Auswählen-Schaltfläche dient zur Anzeige eines Dialogs zum Auswählen eines Verzeichnisses. Die letzte öffnet wiederum einen Dateiauswahl-Dialog, mit dem diesmal aber mehrere Dateien ausgewählt und im Listenfeld des Formulars angezeigt werden können.

    Zusammenfassung

    Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

    den kompletten Artikel im PDF-Format mit Beispieldatenbank

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar