txt aus Unix-System in Access-Tabelle einlesen
Carsten Ganswig
Gesendet: 28.01.19 08:26
Betreff: RE: txt aus Unix-System in Access-Tabelle einlesen


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ß
Top of the page Bottom of the page