none
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

    Montag, 22. Februar 2016 08:55

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

    Montag, 22. Februar 2016 10:20
  • 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.

    Montag, 22. Februar 2016 14:15
  • 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
    Montag, 22. Februar 2016 14:17
  • 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



    Samstag, 27. Februar 2016 13:33
  • 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://stackoverflow.com/questions/12495232/microsoft-jet-oledb-4-0-provider-can-not-be-found-or-it-may-not-be-installed

      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 FalzMVP Mittwoch, 8. Juni 2016 10:48
    Samstag, 27. Februar 2016 20:48