Importfehler bei DoCmd.TransferText

21/01/2010 - 15:08 von Björn | Report spam
Hallo,

ich habe einen sehr komischen Fehler beim Importieren von csv-Dateien. Wenn
ich mir die Dateien im Editor angucke, dann habe ich dort Feldüberschriften
in der ersten Zeile wie z.B. "Dauer [sec]".
Ich habe mir dann eine Funktion geschrieben, die mir diese erste Zeile
ausliest und daraus eine Tabelle mit den Feldüberschriften als Feldnamen
erstellt. Wenn ich mir dann in Access die erstellte Tabelle ansehe ist dort
auch "Dauer [sec]" zu lesen.
Wenn ich nun zu dieser Datei die Werte importieren möchte, und zwar mit dem
Befehl "DoCmd.TransferText acImportDelim, , tableName, fileName, True"
dann kommt die Fehlermeldung "2391: Das Feld 'Dauer (sec)' gibt es in der
Tabelle #XYZ' nicht". Woher kommen beim Import auf einmal die runden Klammern
anstelle der eckigen? Gibt es dafür eine sinnvolle Erklàrung und eine Lösung?
Ich habe auch schon versucht dem Befehl eine andere Codepage mitzugeben,
bekomme aber immer die Fehlermeldung "Ungültiges Statement". Das liegt wohl
daran, dass ich nicht weiß, wie ich die Codepage 8859-1 dem Befehl korrekt
mitgebe. Laut Access-Doku muss es ein Long-Wert sein, aber 88591 oder 8859
funktionieren nicht und die zulàssigen Werte sind nirgends beschrieben. Wàre
für jede Hilfe dankbar. Danke

Gruß
Björn
 

Lesen sie die antworten

#1 Peter Doering
21/01/2010 - 15:34 | Warnen spam
Hallo,

Björn wrote:

ich habe einen sehr komischen Fehler beim Importieren von csv-Dateien. Wenn
ich mir die Dateien im Editor angucke, dann habe ich dort Feldüberschriften
in der ersten Zeile wie z.B. "Dauer [sec]".
Ich habe mir dann eine Funktion geschrieben, die mir diese erste Zeile
ausliest und daraus eine Tabelle mit den Feldüberschriften als Feldnamen
erstellt. Wenn ich mir dann in Access die erstellte Tabelle ansehe ist dort
auch "Dauer [sec]" zu lesen.
Wenn ich nun zu dieser Datei die Werte importieren möchte, und zwar mit dem
Befehl "DoCmd.TransferText acImportDelim, , tableName, fileName, True"
dann kommt die Fehlermeldung "2391: Das Feld 'Dauer (sec)' gibt es in der
Tabelle #XYZ' nicht". Woher kommen beim Import auf einmal die runden Klammern
anstelle der eckigen? Gibt es dafür eine sinnvolle Erklàrung und eine Lösung?



Die eckigen Klammern sind unzulaessige Zeichen. Ersetze sie in der
Textdatei durch runde, dann sollte es schon funktionieren. Am besten laesst
du alles weg, was nicht zwischen A-Z, a-Z und 0-9 liegt. Leer- und
Sonderzeichen sollten in Objektnamen nicht vorkommen.

Ich habe auch schon versucht dem Befehl eine andere Codepage mitzugeben,
bekomme aber immer die Fehlermeldung "Ungültiges Statement". Das liegt wohl
daran, dass ich nicht weiß, wie ich die Codepage 8859-1 dem Befehl korrekt
mitgebe. Laut Access-Doku muss es ein Long-Wert sein, aber 88591 oder 8859
funktionieren nicht und die zulàssigen Werte sind nirgends beschrieben.



Hat mit der Codepage nix zu tun.

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen