Thema Datum  Von Nutzer Rating
Antwort
15.06.2017 18:09:56 Karli
NotSolved
16.06.2017 07:48:09 SJ
NotSolved
Rot CSV-Datensätze zerlegen
16.06.2017 08:58:06 Gast67268
NotSolved

Ansicht des Beitrags:
Von:
Gast67268
Datum:
16.06.2017 08:58:06
Views:
553
Rating: Antwort:
  Ja
Thema:
CSV-Datensätze zerlegen

Feedback: 

Ich habe das Problem inzwischen gelöst, nachdem ich noch ein anderes festgestellt hatte. Meine Datei hatte keine üblichen Zeilenschaltungen, weshalb in VBA die ganze Datei erst mal als eine große Zeile erkannt wurde. Beim Googlen bin ich dann auf folgendes gestoßen:

 

http://www.herber.de/forum/archiv/1040to1044/1041037_VBA_Text_keinen_Zeilenumbruch.html

 

Sub zerlegen()

'deine Datei wird geöffnet
Open "DeinPfad:\deineTXTdatei.txt" For Input As #1
 
    'deine Datei wird bis zum Dateiende eingelesen
    Do While Not EOF(1)
    
        'nacheinander werden vollständige Zeilen der Var Inhalt zugewiesen
        Line Input #1, inhalt
        
            'das Steuerelement Chr(10) wird durch vbCrLf ersetzt
            inhalt = Replace(inhalt, Chr(10), vbCrLf)
            
            'nun müssen erst mal die in Inhalt 2 Zeilen
            'voneinander getrennt werden
            arInhalt = Split(inhalt, vbCrLf)
               
               'mit einer Schleife werden alle Teile
               'von arInhalt verarbeitet
               For endergebnis = 0 To UBound(arInhalt)
                                      
                   'arOneLine erhält jetzt nacheinander
                   'die Inhalte von arInhalt, wobei auch hier
                   'gleich wieder mit Komma geteilt wird
                   arOneLine = Split(arInhalt(endergebnis), ",")
                       
                       'da nun arOneLine ja auch aus mind. 2 Teilen besteht,
                       'muss wieder mit einer Schleife gearbeitet werden
                       For durchlauf = 0 To UBound(arOneLine)
                           'hier dein Code, was mit arOneLine passieren soll
                           'du musst aber mit arOneLine(durchlauf) arbeiten,
                           'weil arOneLine ja aus mind. 2 Teilen besteht
                           '(getrennt durch das Komma), die mit der
                           'For durchlauf-Schleife abgearbeitet werden
                       Next
               Next
    Loop
Close

End Sub

Die äußere do while Schleife habe ich rausgeworfen, da unnötig. 
In der innersten For-Next-Schleife habe ich jetzt die einzelnen durch Semikolon getrennten Zeilenabschnitte. Die muss ich nur
überprüfen ob es der 4 bis 14 Zeilenabschnitt ist. Falls ja, werden deren Inhalte verkettet. 
Dieletztendliche Aufgabe ist es dann noch, die Abschnitte in eine Access-Tabelle zu importieren. 
im Abschnitt Verwendungszwecke wird dann einfach der zusammengekettete String eingefügt.  Das klappt auch schon einwandfrei. 

Werde jetzt noch eine Funktion einfügen, die überprüft, ob ein Datensatz bereits in der Datenbank vorhanden ist. Nicht, dass ich 
versehentlich mal etwas doppelt importiere. Eventuell mache ich aus der IF-Kette noch ein Case, weil es sauberer aussieht.

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
15.06.2017 18:09:56 Karli
NotSolved
16.06.2017 07:48:09 SJ
NotSolved
Rot CSV-Datensätze zerlegen
16.06.2017 08:58:06 Gast67268
NotSolved