Problem mit Zeilenaschaltung bei Export in csv

01/10/2008 - 14:05 von Herbert Fidesser | Report spam
Hallo NG,

mit folgendem Code exportiere ich ein Recordset in eine csv-Datei:

cqry = "SELECT Preise_EDI.* FROM Preise_EDI ORDER BY Preise_EDI.ID;"
Set RS = DB.OpenRecordset(cqry, dbOpenSnapshot)
With RS
UeGTx "BUYERPRODUCTNUMBER;CORPORATION_ID;CREATED;ID;PRICE;PRICEBASISUNIT;PRODUCT_ID;TAXFREE;VAT"
& vbCrLf
.MoveFirst
Do
UeGTx = UeGTx & ";;" & !CREATED & ";" & !ID & ";" & !PRICE &
";" & !PRICEBASISUNIT & ";" & !PRODUCT_ID & ";;" & !VAT & vbCrLf
.MoveNext
Loop While Not .EOF
UeGTx = Left(UeGTx, Len(UeGTx) - 2)
F = FreeFile
strFile = Pfad & "table_prices.csv"
Open strFile For Output As #F
Print #F, UeGTx
Close #F
End With
Set RS = Nothing

Funktioniert auch wunderbar. Aber das Programm, das die Datei dann
importieren soll, meldet "zu wenige Spalten in der CSV-Datei". Die
Ursache ist, dass am Dateiende immer eine Leerzeile hàngt, was beim
Öffnen mit dem Editor auch zu überprüfen ist.

Meine Frage: Wie verhindere ich diese Leerzeile? "Left(UeGTx,
Len(UeGTx) - 2)" um die Zeilenschaltung(vbcrlf) zu löschen ist
offenbar zu wenig.
Zusatzinfo: Wenn ich den Code "Left(UeGTx, Len(UeGTx) - 2)" nochmals
einsetze, fehlen mir im letzten Satz die letzten zwei Zeichen des
letzten Feldes, die Zeilenschaltung ist aber nach wie vor da.

Bitte verzweifelt um Hilfe!
Danke
Gruß aus Wien
Herbert
 

Lesen sie die antworten

#1 Thomas Winkler
01/10/2008 - 14:32 | Warnen spam
Hi,

Meine Frage: Wie verhindere ich diese Leerzeile? "Left(UeGTx,
Len(UeGTx) - 2)" um die Zeilenschaltung(vbcrlf) zu löschen ist
offenbar zu wenig.
Zusatzinfo: Wenn ich den Code "Left(UeGTx, Len(UeGTx) - 2)" nochmals
einsetze, fehlen mir im letzten Satz die letzten zwei Zeichen des
letzten Feldes, die Zeilenschaltung ist aber nach wie vor da.



Dein Problem ist "Print". Das fügt grundsàtzlich einen Zeilenumbruch
ein. Aber warum machst Du den export selber? Access kann doch schon von
Haus aus csv-Dateien generieren. Dann hast Du solche Probleme nicht und
schneller geht's wahrscheinlich auch noch.

<F1>TransferText
<F1>OutputTo

HTH

Thomas

"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."

Ähnliche fragen