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


    Nur für Abonnenten

    Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.

    Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.

    So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.

    Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.

    Bereits Abonnent? Hier einloggen


    Kostenlos & unverbindlich

    Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

    Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

    In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

    Jetzt kostenloses Access-Audit anfordern →

    Schreibe einen Kommentar