AW: Textdatei importieren
26.10.2007 17:22:00
ingUR
Hallo, Detlef,
wie @Oberschlumpf schon mit seiner Nachfrage verdeutlicht hat, ist Deine Aufgabe nur mit Kenntnis der Art des Datenaufbaues möglich.
Deiner Beschreibung nach könnte die Rohdatendatei vieleicht so aussehen, wobei ich den Datensatz je Kunde nur aus 6 Zeilen bestehen lasse (Konstantendefinition Const MAXITEMS=6)
890700|Müller|
890700|Anton|
890700|34780|
890700|Irgendwo|
890700|05738950|
890701|34780|05738950
890701|Schulz|
890701|Emil|
890701|33780|
890701|Andernorts|
890701|03738950|
890701|24780|38950
Diese Datei habe ich auf Laufwerk C: im Unmterverzeichnis temp abgelegt.
Aus dieser zwölfzeiligen Datei kann ich zwei Zeilen Datensatz mit folgender Standardmodulprozedur erzeugen:
Option Explicit
Const MAXITEMS = 6
Sub LeseRohdaten()
Dim strLin As String, strL As String, i As Integer, r As Long
Open "C:\temp\Rohdaten.txt" For Input As #1
While Not (EOF(1))
strL = ""
For i = 1 To MAXITEMS
Line Input #1, strLin
strL = strL + Trim(strLin)
If Not (Right(strLin, 1) = "|" And i
Sollen nun die Wiederholungen der Kundennummern fortfallen, dann ist sicherzustellen, dass diese nach dem ersten Auftreten aus der Sringkette herausgnommen werden (Stringoperationen), was natürlich von der Lage der Werte abhängt. Doch mit einem guten VBA-Kentntnisstand, wird wohl dieses Grundgerüst zum VBA-Prozedur ausreichen, um die notwendige Weiterentwicklung zu ermöglichen.
Das fertige Tabelelnprodukt kann dan wie gewohn mit dem vorgegeben Trennzeichen auseinander genommen werden, sofern nicht bereits beim Einlesen diese Arbeiten erledigt werden können.
Der durchgängig gleiche Aufbau der Einzelangaben zu eienm Datensatz ist jedoch ein besonderes Thema, was ggf. durch besondere Prüfroutinen während des Einlesevorganges geprüft werden muß (mögliche Leerplätze, Vollständikeit der Zeilenanzahl je Kunde).
Gruß,
Uwe