Here's a solution I use to make a quick "copy" of a datatable. I'm leaving some of the comments so you might be able to pick-up on the logic. Note that I've changed the access type from your requirement (DAO) to ADOX (ADODB). Writing this into a module in the VBA console might throw up a warning so go to Object Browser library and find my replacement.
Sub RollTableOff() 'At this stage this code updates the data table with the first input query....
Dim cnn1 As ADODB.Connection
Dim cat1 As New ADOX.Catalog
Dim rst1 As New ADODB.Recordset
Dim rst2 As New ADODB.Recordset
'Set context for populating new table (pattern02).
'Empty values from pattern02 before running.
Set cnn1 = CurrentProject.Connection
Set cat1.ActiveConnection = cnn1
Set rst1.ActiveConnection = cnn1
'Open recordsets based on new and orignal tables.
rst1.Open "Pattern", , adOpenKeyset, adLockOptimistic, adCmdTable
'Loop through recordsets to copy from original to new table.
With rst1
Do Until rst2.EOF
.AddNew
.Fields![ID] = rst2![ID]
.Fields![Type] = rst2![Type]
.Fields![Amount] = rst2![Amount]
.Update
.MoveNext
rst2.MoveNext
Loop
End With
End Sub
Or not ... (some substitution required)
No SQL was used in this solution.