PDA

Vollständige Version anzeigen : csv-file importieren


daviddastard
19.06.2001, 15:03
Hi,

ich möchte gerne per Makro einen csv-file importieren. Manuelles Importieren von dem File ist kein Problem und automatisches importieren von einem Excel-File per Makro ist ebenfalls kein Problem. Aber ich habe in den Makrobefehlen keinen Befehl gefunden ein csv-file zu importieren. Wahrscheinlich muss man einen SQL-Befehl schreiben.

Ich hoffe mir kann jemand weiterhelfen.

Thx

DD

holgii
19.06.2001, 15:45
Hallo David,

.csv-Files gehören ebenfalls zur Gattung der Textdateien, daher kannst Du in Deinem Makro die TransferText-Aktion verwenden.

.csv-Dateien haben das Komma bzw. das Semikolon als Feldtrennzeichen. Importiere die Datei manuell, speichere die Import-Einstellung (Spezifikation) ab.


Gruß
holgii

daviddastard
19.06.2001, 15:49
HI,

ich habe es jetzt geschafft den csv-file zu importieren, aber in 2 Spalten setzt er einen falschen Datentyp (Datum/zeit statt Zahl).

Ich habe folgende sql anweisung in ein Makro geschrieben um den Datentyp dieser Spalte zu ändern:

update table Tabellenname set column Spalte numeric

Ich hoffe es kann mir jemand weiterhelfen, denn er bringt immer den Fehler, dass der Syntax in der SQL-Anweisung falsch sei.

Thx
DD

holgii
19.06.2001, 16:19
Hallo David,

ich schlage vor, dass Du die Datei noch einmal manuell importierst. Der Text-Import-Assistent kommt irgendwann beim Importieren an eine Stelle, wo er ein Kontrollkästchen mit der Beschriftung "Feld nicht importieren (Überspringen)" anzeigt.
In dieser Ansicht kann man auch den Datentyp jedes einzelnen Feldes manuell bestimmen (Spalte anklicken, anschl. Datentyp wählen).

Danach die Spezifikation speichern.

Dann könntest Du Dir die Änderung der Datendefinition für die beiden Spalten nach dem Import sparen....


Gruß
holgii

daviddastard
20.06.2001, 10:41
HI Holgii,

das ist zwar eine gute Idee, aber die Datenbank soll auch verschiedenen rechnern laufen, ohne, dass auf diesen die Spezifikation eingegeben wird, oder ist diese Spezifikation dann in der einzelnen Datenbank gespeichert?

Thx DD

kama
20.06.2001, 11:34
Genau!
kama

daviddastard
20.06.2001, 11:50
HI,

ich habe mal wieder ein kleines Problem. Soweit funktioniert alles mit dem automatischen einlesen des csv-files, wenn ich die Datenbank aus Access raus starte. Der csv-file liegt im gleichen Ordner wie die Datenbank. Wenn ich jetzt allerdings über den Windows Explorer die Datenbank öffne findet er den csv-file nicht. In Access habe ich als Pfad zu dem csv-file einfach nur den namen des csv-files angegeben, weil er ja im gleichen Ordner liegt.

Holgii, du kannst mir bestimmt weiterheklfen, oder vielleicht auch jemand anderes?

Thx DD

holgii
20.06.2001, 14:12
Hallo David,

Access97 benutzt für das IMPORTIEREN immer das Standardarbeitsverzeichnis, das unter Menü: Extras / Optionen / Allgemein eingetragen ist (Standard = C:\Windows\...\Eigene Dateien).

Du sagst, er findet die .csv-Datei, wenn Du zuerst Access startest, dann die .mdb-Datei über den Datei-Öffnen-Dialog aufrufst. Das ist richtig, denn ich schätze mal, dass der Öffnen-Dialog zunächst auf das "...\Eigene Dateien"-Verzeichnis zeigt und dadurch, dass Du dann das Laufwerk und/oder Verzeichnis änderst, um Deine .mdb-Datei zu finden, ändert Access das aktuelle Arbeitsverzeichnis auf genau diesen Pfad ab, was jedoch NICHT geschieht, wenn Du die .mdb-Datei direkt über den Explorer startest.

Wenn Du den Arbeitsverzeichnis-Eintrag in den Optionen änderst, gilt er für ALLE .mdb-Dateien, die an dem Rechner bearbeitet werden.

Das hilft Dir also leider nicht weiter.

Ich denke, am besten ist es, wenn Du den kompletten Pfad der .csv-Datei in Dein Makro beim TransferText einträgst.


Gruß
holgii

Stema
20.06.2001, 14:53
So kannst Du auf den Pfad abfragen:
Pfad = Form_Form1.Application.CurrentDb.Name

Dann mußt Du nur noch den DB-Namen ausschneiden.