Gespeicherte Importe und Exporte per VBA

Access bietet in aktuelleren Versionen die Möglichkeit, einen Import oder Export nach dem Abschluss zu speichern. So können Sie diese einfach wieder aufrufen, um den Import oder Export zu wiederholen. Noch schöner ist, dass man auf diese gespeicherten Informationen auch per VBA zugreifen kann. Wie das gelingt und welche Möglichkeiten sich daraus ergeben, schauen wir uns im vorliegenden Beitrag an.

Wenn Sie unter Access eine Datei in eine Tabelle importiert haben oder eine Verknüpfung auf Basis einer Datei angelegt haben oder Daten aus Tabellen oder Abfragen in eine Datei exportiert haben, finden Sie in aktuelleren Versionen von Access am Ende des Assistenten die Möglichkeit, die Import- beziehungsweise Exportschritte zu speichern. Anschließend können Sie diese, wenn Sie im Ribbon einen der Befehle Externe Daten|Importieren und Verknüpfen|Gespeicherte Importe oder Externe Daten|Exportieren|Gespeicherte Exporte aufrufen, den Dialog Datentasks verwalten öffnen (siehe Bild 1).

übersicht der gespeicherten Import- und Export-Schritte

Bild 1: übersicht der gespeicherten Import- und Export-Schritte

Hier finden Sie auf den beiden Registerkarten Gespeicherte Importe und Gespeicherte Exporte die bisher von dieser Datenbank aus gespeicherten Vorgänge. Klicken Sie doppelt auf einen dieser Vorgänge oder markieren Sie einen der Vorgänge und klicken dann auf die Schaltfläche Ausführen, wird der Vorgang mit den gespeicherten Parametern wiederholt.

In diesem Dialog können Sie die Bezeichnung des Vorgangs, den Namen der Quell- oder Zieldatei sowie die Beschreibung anpassen und vorhandene Vorgänge löschen. Außerdem können Sie über die Schaltfläche Outlook-Aufgabe erstellen… eine Outlook-Aufgabe mit dem geplanten Vorgang als Ziel erstellen.

Vorgang mit Outlook-Aufgabe

Wenn Sie eine solche Aufgabe erstellen, sieht diese wie in Bild 2 aus. Hier finden Sie lediglich eine Anleitung, welche Schritte auszuführen sind – wer also gedacht hat, er könnte damit die Ausführung eines der gespeicherten Vorgänge automatisch starten, wird enttäuscht.

Aufgabe mit Anweisungen zum Ausführen eines gespeicherten Vorgangs

Bild 2: Aufgabe mit Anweisungen zum Ausführen eines gespeicherten Vorgangs

Vorgang anstoßen per VBA

Uns interessiert ohnehin mehr, wie wir per VBA auf die gespeicherten Vorgänge zugreifen können. Das interessanteste ist eine Möglichkeit, einen gespeicherten Import oder Export per VBA-Code anzustoßen. Dieser Befehl heißt RunSavedImportExport und ist Teil des Objekts DoCmd. Um einen gespeicherten Vorgang etwa namens ExportTextdatei anzustoßen, verwenden Sie also etwa den folgenden Aufruf:

DoCmd.RunSavedImportExport "ExportTextdatei"

Dies führt den Vorgang aus. Sollte es sich um einen Import handeln, werden eventuell bereits vorhandene Zielobjekte einfach überschrieben. Beim Export werden vorhandene Dateien gleichen Namens ebenfalls ignoriert.

Gespeicherte Vorgänge verwalten per VBA

Aber es gibt noch mehr Elemente in der Access-Bibliothek, mit denen Sie auf die gespeicherten Vorgänge zugreifen können. Die wesentlichen Elemente sind die Auflistung ImportExportSpecifications und die darin enthaltenen Elemente des Typs ImportExportSpecification.

Hier muss man nun aufpassen, um Missverständnisse zu vermeiden: Es gibt zwar während des Ausführens eines Imports oder Exports die Möglichkeit, eine Import- oder Export-Spezifikation anzulegen, die man später wieder laden oder als Teil eines Aufrufs etwa der Methode TransferText des DoCmd-Objekts nutzen kann und deren Daten in den Systemtabellen MSysIMEXColumns und MSysIMEXSpecs gespeichert werden. Mit der Auflistung ImportExportSpecifications referenzieren wir stattdessen die im oben erwähnten Dialog gespeicherten Importe und Exporte.

Auflistung ImportExportSpecifications durchlaufen

Dazu schauen wir uns zunächst diese Auflistung an. Diese ist ein Element des mit CurrentProject gelieferten Objekts. Die Eigenschaften können wir uns beispielsweise ansehen, wenn wir die Methode im Direktfenster eingeben. Nach Eingabe eines weiteren Punkts zeigt IntelliSense alle Methoden und Eigenschaften dieser Auflistung an (siehe Bild 3).

Elemente von ImportExportSpecifications

Bild 3: Elemente von ImportExportSpecifications

Die folgende Prozedur durchläuft alle in dieser Auflistung gespeicherten Elemente und gibt diese im Direktfenster aus:

Public Sub VorgaengeDurchlaufen()
     Dim objSpec As ImportExportSpecification
     For Each objSpec In  CurrentProject.ImportExportSpecifications
         Debug.Print objSpec.Name
     Next objSpec
End Sub

Mit unseren drei Beispiel-Vorgängen erhalten wir dann etwa die folgende Ausgabe:

ImportTextdatei1
ImportTextdatei2
ExportTextdatei

Neuen Vorgang anlegen

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