|
Member
Beiträge: 16
| Moin Peter,
hier der Code zum Einlesen der als Tabelle verknüpften Textdatei:
rs.Open "[Textfile]", CurrentProject.Connection, adOpenKeyset, adLockOptimistic 'auslesen
rs2.Open "[Daten]", CurrentProject.Connection, adOpenKeyset, adLockOptimistic 'einlesen
rs.MoveFirst
'je nach Version liegt unterschiedliche Datensatzstruktur vor
Select Case rs.Fields(0)
Case "V010"
vOffSet_PZN = 4
Case "V200"
vOffSet_PZN = 5
End Select
On Error Resume Next
je Textzeile sind 9 Einträge PZN möglich, werden aber nicht alle genutzt
deshalb Umbruch, so dass für jede PZN ein separater Datensatz angelegt wird
dazu max Anzahl von PZNi in Spalten der verlinkten Textdatei bestimmen
Dim Tabelle As dao.TableDef, db As Database, typ, j
Set db = CurrentDb
Set Tabelle = db.TableDefs("textfile")
On Error Resume Next
For i = 1 To 10
typ = Tabelle.Fields("PZN" & i).Type
If Err.Number = 3265 Then
j = i - 1: Err.Clear: Exit For
End If
Next
Set Tabelle = Nothing: Set db = Nothing
Dim z As Long 'zählt alle PZNs, soviele DS muss Daten am Ende enthalten!
z = 0
Do Until rs.EOF
For i = 1 To j
If IsNull(rs.Fields("pzn" & i)) = False Then
z = z + 1
rs2.AddNew
rs2.Update "VOID", rs.Fields(6)
rs2.Update "Nr", CStr(i)
rs2.Update "Quartal", rs.Fields(3)
Die wichtigsten Felder werden direkt geupdated, damit der Datensatz angelegt ist, sollten im weiteren fehlerhafte Werte auftreten
rs2.Fields("bsnr9") = rs.Fields(2)
rs2.Fields("lanr9") = rs.Fields(1)
rs2.Fields("VO-Datum") = rs.Fields(7)
rs2.Fields("EGKVNR") = rs.Fields(8)
rs2.Fields("GebDat") = rs.Fields(9)
rs2.Fields("PZN") = rs.Fields(13 + (i - 1) * vOffSet_PZN)
rs2.Fields("VOF") = rs.Fields(14 + (i - 1) * vOffSet_PZN)
rs2.Fields("Netto") = rs.Fields(16 + (i - 1) * vOffSet_PZN)
rs2.Fields("valid") = 0
Else
Exit For
End If
Next
rs.MoveNext
Loop
Gruß | |
|