ADO Import einer CSV s

18/06/2009 - 21:12 von Gerhard Meier | Report spam
Hallo zusammen,

ich bring es einfach nicht auf die Reihe, drei Datenfelder (Datum, Zeit,
Zahl) in eine
Tabelle zuschreiben. Wenn ich es als xls abspeichere dann ja, aber ich
möchte es unbedingt
von einer csv Datei, weil ein anderes Programm das als sochles ausgibt.
Keine CHANCE, das die Werte eingelesen werden. Nur das Datum wird
eingelesen, rest wird
schlicht ingoriert.



rst1.Fields.Count = 2 Felder

Getestet:
"Format" = "TabDelimited"
or
"Format" = "Delimited(;)"

Hinweise

'http://support.microsoft.com/?kbid&2537
'http://www.connectionstrings.com/?carrier=textfile
'http://www.activevb.de/tutorials/tu...ml#anchor2


strfile = "mein Pfad"

Dim cnnSitag As New ADODB.Connection
Dim strfile As String
Dim strConnection As String
Dim rst1 As New ADODB.Recordset
Dim fld As ADODB.field

Dim strDatum As Date
Dim strZeit As Date (oder as String, oder as Variant)
Dim dblkwH As Double


With cnnSitag
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source= " & strfile & ";" & _
"Extended Properties=""text;HDR=no;FMT=Delimited"";"
.Open
End With
rst1.CursorLocation = adUseClient
rst1.Open "Select * From Ergebniszeitreihe.csv", cnnSitag,
adOpenForwardOnly, adLockReadOnly


Daten des CSV
01.01.2008;00:15;2053
01.01.2008;00:30;2056,8
11.01.2008;00:45;2080,3
01.01.2008;01:00;2117
01.01.2008;01:15;2181,4
01.01.2008;01:30;2155,1
01.01.2008;01:45;2154,2
01.01.2008;02:00;2085,6

Woran um Himmels Willen liegt es, das dies nicht möglich ist. Besten Dank
für jeden Tipp
der mir da weiterhelfen kann.

Gerry Meier

 

Lesen sie die antworten

#1 Jens Schilling
19/06/2009 - 09:24 | Warnen spam
Hallo, Gerhard

Gerhard Meier wrote:
ich bring es einfach nicht auf die Reihe, drei Datenfelder (Datum,
Zeit, Zahl) in eine
Tabelle zuschreiben. Wenn ich es als xls abspeichere dann ja, aber ich
möchte es unbedingt
von einer csv Datei, weil ein anderes Programm das als sochles
ausgibt. Keine CHANCE, das die Werte eingelesen werden. Nur das Datum
wird eingelesen, rest wird
schlicht ingoriert.



Da schilderst leider nicht, woran genau Du scheiterst, und Dein Code scheint
unvollstàndig.

adOpenForwardOnly, adLockReadOnly





Probier's mal mit folgenden Zeilen, um Dir die Werte im Direktfenster
ausgeben zu lassen:

Do While Not rst1.EOF

strDatum = rst1(0)
strZeit = Format(Time, rst1(1))
dblkwH = CDbl(rst1(2))

Debug.Print strDatum
Debug.Print strZeit
Debug.Print dblkwH

rst1.MoveNext

Loop


Gruss
Jens

Ähnliche fragen