This is how I did it
Dim rst4 As DAO.Recordset
Dim rst5 As DAO.Recordset
Dim rst6 As DAO.Recordset
Set rst4 = db.OpenRecordset("ApprovedTable")
rst4.MoveFirst
Set rst5 = currentdb.OpenRecordset("HistoryTable")
Set rst6 = db.OpenRecordset("EmployeeTotalTable")
rst6.MoveFirst
Do Until rst4.EOF
rst5.AddNew
rst5!EmployeeNumber = rst4!EmployeeNumber
rst5!HoursWorked = rst4!HoursWorked
rst5!HoursToBePaid = rst4!HoursToBePaid
rst5!HoursToComp = rst4!HoursToComp
rst5!Shift = rst4!Shift
rst5!Reason = rst4!Reason
rst5!Note = rst4!Note
rst5!Rate = rst4!Rate
rst5!CostCenter = rst4!CostCenter
rst5!DateWorked = rst4!DateWorked
rst5!DateEntered = rst4!DateEntered
rst5!ApprovedBy = rst4!ApprovedBy
rst5.Update
rst4.Delete
rst4.MoveNext
Loop
Do Until rst6.EOF
rst6.Delete
rst6.MoveNext
Loop
MsgBox ("Last year's entries have all been moved")
Exit Sub
NoRecords:
MsgBox ("There are no entries for this year")
Of course I did some error checking to begin with.
For instance, if Pending Table had records I wouldn't let
this happen, if there were overtime to pay values or
overtime comp values no go either.