beebof Geschrieben 16. Oktober 2003 Geschrieben 16. Oktober 2003 Hallo zusammen! Ich habe folgendes Problem: Ich möchte in Access2000 eine csv-Datei importieren. Hierzu habe ich mir eine VBA-Routine geschrieben, die die Datei zeilenweise einlesen soll. Dummerweise hat die zu importierende Datei - die in dem Format geliefert wird - am Zeilenende nicht 0D 0A (also Carriage Return + Line Feed), sondern nur ein 0A. Dies erkennt der blöde "Line Input" Befehl aber nicht. Hat da jemand ne Lödung für mich? Code-Auszug: Open strFilename For Input As #1 ' Datei öffnen. Do While Not EOF(1) ' Schleife bis Dateiende. Line Input #1, Textzeile ' Zeile in Variable einlesen. MsgBox (Textzeile) ' zur Überprüfung If InStr(Textzeile, ";") > 0 Then arInput = Split(Textzeile, ";") Else arInput = Split(Textzeile, ",") End If rsNew.AddNew For I = 0 To rsNew.Fields.Count - 1 rsNew(I) = arInput(I) Next rsNew.Update Loop Close #1 ' Datei schließen. Zitieren
Peregrin Geschrieben 16. Oktober 2003 Geschrieben 16. Oktober 2003 hi, das sollte gehen Dim sTmp As String Dim ff As Long ff = FreeFile Open sFilename For Input As #ff While (Not EOF(ff)) 'immer ein zeichen einlesen sTmp = Input(1, #ff) 'prüfung auf zeilenende 'macht allerdings aus jedem CrLf zwei zeilenumbrüche... If ((sTmp = vbCr) Or (sTmp = vbLf)) Then sTmp = vbNewLine End If 'verarbeitung des gelesenen zeichens Text1.Text = Text1.Text & sTmp Wend Close #ff allerdings ungetestet... hth Zitieren
beebof Geschrieben 17. Oktober 2003 Autor Geschrieben 17. Oktober 2003 Jippie!!! :) Habs leicht abgeändert und es klappt! Danke Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.