Fragensteller
CSV-Import in Access 2010 - Zeilenende wird nicht gefunden

Frage
-
Moin,
ich versuche eine CSV-Datei in Access zu importieren.
Dim objFileDialog As FileDialog Set objFileDialog = Application.FileDialog(msoFileDialogOpen) objFileDialog.Show strDatei = objFileDialog.SelectedItems(1) Set rsDatensatz = CurrentDb.OpenRecordset("Import", dbOpenDynaset) kanal = FreeFile() Open strDatei For Input As #kanal Do Until EOF(kanal) Line Input #kanal, strZeile MsgBox strZeile .... Loop Close #kanal
Die MsgBox zeigt die gesamte Datei, bzw. einen Teil davon an. Jedenfalls wird offensichtlkich das Zein´lenende nicht gefunden.
Ich habe den Code au einem Code-Schnipsel genommen und angepasst. Wo liegt der Fehler?
Danke
Gerdon
Alle Antworten
-
Hallo gerdon,
einmal agesehen davon, dass es in Deinem Code noch ungenutze Zeilen gibt, sollte das Einlesen eigentlich zeilenweise ausgeführt werden.
Hast Du mal die CSV-Datei in einem Editor geöffnet?
Vielleicht liegt es ja auch an der CSV-Datei. Wie wurde diese erstellt?
Grüße
Roland
-
Hallo gerdon,
einmal agesehen davon, dass es in Deinem Code noch ungenutze Zeilen gibt, sollte das Einlesen eigentlich zeilenweise ausgeführt werden.
Hast Du mal die CSV-Datei in einem Editor geöffnet?
Vielleicht liegt es ja auch an der CSV-Datei. Wie wurde diese erstellt?
Grüße
Roland
Die Datei stammt aus einem Export einer Bankingsoftware und wird in Excel normal geöffnet. Ich habe sie damit auch noch mal neu erstellt. Ohne Erfolg.
-
Wie sieht die Datei im Notepad aus?
Ansonsten würde ich vielleicht auch einen anderen Ansatz wählen.
Du kannst z.B. eine CSV-Datei im Access auch als eine verknüpfte Tabelle einbinden. Damit hast Du dann Zugriff auf die Daten wie mit einer normalen Tabelle.
Wenn sich die darunter liegende CSV-Datei ändert, ist die Änderung in der verknüpften Tabelle zu sehen.
Grüße
Roland
- Bearbeitet Roland Franz Montag, 22. Februar 2016 14:51 Tippfehler
-
Hallo!
Schau Dir mal die Hilfe zu DoCmd.Transfertext näher an.
Mit diesem Befehl solltest Du die Daten aus der Datei in eine Tabelle bekommen.
HTH
Thomas@Team-Moeller.de
Blog: Blog.Team-Moeller.de
Homepage: www.Team-Moeller.de
- Bearbeitet Thomas Möller MVP Samstag, 27. Februar 2016 13:34
-
Hi,
die Datei wird wohl nicht CrLf (0D 0A als Hexcodes) als Zeilenumbruchzeichen verwenden, sondern nur Cr (0D) oder Lf (0A). Wahrscheinlich letzteres, da Line Input ja mit 0D 0A und 0D alleine umgehen kann.
Schau dir die Datei mal mit einem Hex Editor an, dort kann man das sehen.
Aber so ganz allgemein würde ich CSV Dateien eher mit der Jet Engine (bzw. ACE für Office x64) öffnen und verarbeiten. Das kann man auch aus VBA heraus.
http://www.vbforums.com/showthread.php?360055-RESOLVED-Reading-a-csv-file-using-Jet-OLEDB-4-0
Damit kann man die CSV Inhalte dann auch gleich in eine Tabelle in deiner Access Datenbank importieren. Ein Beispiel hierfür findest Du bspw. hier:
http://www.aspfaq.de/index.asp?FID=100&ELE=8707
Ist zwar VBScript, da die wichtigen Parts aber eh nur der ConnectionString und das SQL Statement sind, sollte das dennoch helfen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Mittwoch, 8. Juni 2016 10:48