Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Milvus am April 01, 2019, 12:54:32

Titel: CSV per SQL einlesen und auslesen / ADO
Beitrag von: Milvus am April 01, 2019, 12:54:32
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?
Titel: Re: CSV per SQL einlesen und auslesen / ADO
Beitrag von: PhilS am April 01, 2019, 13:09:27
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.
Titel: Re: CSV per SQL einlesen und auslesen / ADO
Beitrag von: Milvus am April 02, 2019, 06:46:56
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.
Titel: Re: CSV per SQL einlesen und auslesen / ADO
Beitrag von: Milvus am April 02, 2019, 07:17:02
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!?