FlowHeater

Automatisierter Batch CSV Import mit MS Access

DruckenE-Mail

 

MS Access CSV Batch Import
MS Access CSV Batch Import
Die fertige Definition können Sie sich im Verzeichnis Examples\DE\AccessAdapter\csv-batch-import-ms-access.fhd ansehen. Alle Beispiele sind im ZIP Archiv zum FlowHeater enthalten. Das Beispiel kann für die Access Versionen 97, 2000, 2002 (XP) 2003 und 2007 verwendet werden. Es werden die Datenbankformate MDB, MDE, ACCDB und ACCDE unterstützt.

Das Beispiel zeigt wie mit Hilfe des Access Adapters und dem Batch Modul mehrere CSV Textdateien automatisiert in eine MS Access Datenbank Tabelle importiert werden können.

Die Aufgabenstellung

Wir wollen mehrere (1 - n) CSV Textdateien, die in einem Verzeichnis vorhanden sind, automatisch in eine MS Access Datenbank Tabelle importieren. Um diese Problemstellung lösen zu können, benötigen wir zwingend das Batch Modul (FHBatch.exe) sowie ein kleines CMD Shell Skript mit dem wir das ganze steuern.

Die Umsetzung

Da der FlowHeater in der Definition keine Wildcards, o.ä. zulässt, müssen wir für dieses Vorhaben einen kleinen Trick anwenden. Wir legen uns zuerst eine FlowHeater Definition an, mit der wir eine CSV Textdatei problemlos von Hand importieren könnten. Nachdem wir den CSV Import getestet haben speichern wir die Definition unter den Namen CSV-Batch-Import-MS-Access.fhd ab. Dann erzeugen wir eine CMD Shell Skript Datei batch-import.cmd mit folgenden Inhalt.

Das CMD Shell Skript (batch-import.cmd)

@echo off
forfiles /M batch-import*.csv /C "cmd /c ..\..\..\Bin\FHBatch.exe /ReadFileName @path csv-batch-import-ms-access.fhd"

Hinweis: Falls bei Ihnen der forfiles Befehl nicht vorhanden ist, (Windows Version kleiner Vista oder Windows 2003) können Sie sich den forfiles Befehl auch von ftp://ftp.microsoft.com/ResKit/y2kfix/x86 herunterladen.

Leider ist dann hier die Syntax des Aufrufes etwas anders :-(

@echo off
forfiles -mbatch-import*.csv -c "cmd /c ..\..\..\Bin\FHBatch.exe /ReadFileName @FILE csv-batch-import-ms-access.fhd"

Der Befehl forfiles (klicken Sie hier um mehr Informationen zum forfiles Befehl zu erhalten) ermittelt als erstes alle CSV Textdateien im aktuellen Verzeichnis die dem Muster batch-import*.csv entsprechen. Dies geschieht mit der Option /M und dem nachfolgenden Muster. Für jede gefundene CSV Textdatei wird dann das Batch Modul (FHBatch.exe) mit folgenden Parametern aufgerufen.

      FHBatch.exe /ReadFileName @path csv-batch-import-ms-access.fhd

Die Option /ReadFileName überschreibt die in der FlowHeater Defintion (csv-batch-import-ms-access.fhd ) angegebene CSV Textdatei mit der gerade aktuelle zu verarbeiteten CSV Textdatei (@path).

 

Automatisieren über einen Windows Task

Das CMD Shell Skript können wir, so wie es ist, manuell über einen Doppelklick ausführen. Wenn Sie das ganze z.B. auf einen Windows Server automatisch ausführen lassen wollen dann können Sie dieses CMD Shell Skript über einen Windows Task zeitgesteuert aufrufen.

Unter Windows 2000, (2003 Server), bzw. XP finden Sie den Taskplaner unter Windows Explorer->Systemsteuerung->geplante Tasks
Unter Windows Vista finden Sie den Taskplaner unter Programme->Zubehör->Systemprogramme->Aufgabenplanung

 

Microsoft®, Windows®, Access® sind eingetragene Markenzeichen der Microsoft Corporation

Wer ist Online

Wir haben 6 Gäste online

Login