Hallo Lorf,
danke für Deine Hinweise. Ich habe mir nun ein paar Bücher zugelegt, die mir Eure Programmierungen verständlich gemacht haben.
Ich bedanke mich noch einmal für Deine ausdauernde Hilfe. Es hat mich dazu angespornt, mich mit Access noch weiter zu beschäftigen.
@ RaHi
Deine Lösung arbeitet gut bei mir und ich habe sie in ein anderes Makro eingebaut.
Public Sub test()
On Error GoTo Err_Command10_Click
'Declarations
Dim rst1 As ADODB.Recordset
Dim rst2 As ADODB.Recordset
Dim conn As ADODB.Connection
Set rst1 = New ADODB.Recordset
Set rst2 = New ADODB.Recordset
rst1.Open "Tbl_Specification_codes_accumulated", CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
rst2.Open "Tbl_Specification_codes_separated", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
Do While Not rst1.EOF
If IsNull(Len(rst1!Specifications)) Then
GoTo end1
Else
For start = 1 To Len(rst1!Specifications) / 4
rst2.AddNew
rst2!Order_ID = rst1!Order_ID
rst2!Order= rst1!Order
rst2!Base_Code = rst1!Base_Code
rst2!Specifications = Mid(rst1!Specifications, (start - 1) * 4 + 1, 4)
Next
End If
end1:
rst1.MoveNext
Loop
rst1.Close
Exit_Command10_Click:
Exit Sub
Err_Command10_Click:
MsgBox Err.Description
Resume Exit_Command10_Click
End Sub
Es geht darum, die Spezifikationscodes, die hier alle fortlaufend erfasst werden, zu vereinzeln.
Leider funktioniert es nicht wenn das Ergebnis von
Len(rst1!Specifications) / 4
eine ungerade Zahl ergibt z. B. 108/4=27.
In diesem Moment trägt das Makro nicht mehr den allerletzten Wert ein, obwohl dieser eindeutig noch erfasst wird.
Könnt Ihr mir da noch mal kurz helfen?
Gruß
Peter