Guten Tag,
ADO bietet ja die wunderbare Möglichkeit, per SQL direkt auf externe Datenquellen zuzugreifen.
Ich möchte meinen CSV-Standard darauf umstellen und suche noch nach der besten Möglichkeit. Ein Recordset möchte ich vermeiden!
Zurzeit habe ich folgende Lösung, die noch nicht richtig läuft:
Command.CommandText = "SELECT * INTO TBL1 FROM [text;Database=" & Pfad & "].ATB_CSV2.csv"
D.h. ein ADO.Command-Objekt. Der Code läuft fehlerfrei druch, die Tabelle mit der Spalte wird gebildet, ist aber leer. Die INhalte werden also nicht gelesen. Warum?
CSV:
Test1;Test2
Eins;Hallo
Zwei;Hallo
Im gleichen Pfad habe ich eine Shema.INI liegen, in der die Datei spezifiziert ist:
[ATB_CSV2.csv]
ColNameHeader=True
Characterset=UNICODE
Format=Delimited( ;)
Col1="Test1" Char
Col2="Test2" Char
Ergebnis:
Test1;Test2
keine Werte.
Die Shema.Ini wird meiner Meinung nach bereits angesprochen.
Jemand eine Idee?
Zitat von: Milvus am April 01, 2019, 12:54:32
ADO bietet ja die wunderbare Möglichkeit, per SQL direkt auf externe Datenquellen zuzugreifen.
Wirklich? Ich dachte das läuft dann über die Jet-Engine.
Zitat von: Milvus am April 01, 2019, 12:54:32Command.CommandText = "SELECT * INTO TBL1 FROM [text;Database=" & Pfad & "].ATB_CSV2.csv"
Ich sehe den Dateinamen mit den zwei Punkten darin hinter der schließenden, eckigen Klammer als potentiell problematisch an.
Stimmt, die Überschrift müsst Jet heißen.
Wenn ich die Punkte beeinfluse bekomme ich entweder einen Syntaxfehler oder die Meldung, dass die Datenbank nicht gefunden wurde.
Aber in der Deklaration:
Dim Comm As New ADODB.Command
Das ist vielleicht auch schon die Antwort? Ich versuche was zu verbinden, das nicht zusammen gehört!?