Tom, here is the code to replace the code in the Transfer part of module 1.
Dim data As String, count As Integer, count2 As Integer, rstable As Object
Dim recount As Integer, rs As Object, x As Integer, fieldcount As Integer
On Error GoTo errorcatch
Set rstable = CurrentDb.OpenRecordset("input")
Set rs = CurrentDb.OpenRecordset("output")
rstable.MoveLast
recount = rstable.RecordCount
rstable.MoveFirst
For records = 1 To recount
If Not IsNull(rstable![Number of Instalments]) And rstable![Number of Instalments] <> 0 Then
count = rstable![Number of Instalments]
Else
count = 1
End If
For count2 = 1 To count
rs.AddNew
For fieldcount = 1 To 34
rs.Fields(fieldcount).Value = rstable(fieldcount).Value
Next fieldcount
If count > 1 Then
x = count2 * 2
rs.[Instalment Amount] = rstable(34 + x).Value
rs.[Instalment Posting Date] = rstable(35 + x).Value
End If
rs.Update
rs.Bookmark = rs.LastModified
Next count2
rstable.MoveNext
Next records
skip:
rs.Close
Set rs = Nothing
rstable.Close
Set rstable = Nothing
MsgBox "Transferred records"
Exit Sub
errorcatch:
MsgBox Err.Description & " - " & count2 & " field " & fieldcount
The loop that counts from 1 to 34 is the one that transfers the "standard data", so if you want to add more fields ensure that you add them before the individual Installment fields and then adjust the 34 accordingingly.