Apri un Recordset in sola Lettura con il Record da Duplicare, fai un CICLO 1 TO N, ed all'interno inserisci tutti i campi… esclusa la PK ovviamente…
Una cosa simile buttata giù a mano senza controllare…
Function DuplicateID(pID As Long, pDuplicates As Integer) As Boolean
On Error GoTo Err_Handler
Dim rsRead As DAO.Recordset
Dim rsWrite As DAO.Recordset
Dim fld As DAO.Field
Dim i As Integer
Set rsRead = DBEngine(0)(0).OpenRecordset("SELECT * FROM TuaTab WHERE NomeID=" & pID, dbOpenSnapshot, dbReadOnly)
Set rsWrite = DBEngine(0)(0).OpenRecordset("SELECT * FROM TuaTab WHERE 1=0")
For i = 1 To pDuplicates
rsWrite.AddNew
For Each fld In rsRead.Fields
If fld.Name <> "NomeCampoPK" Then rsWrite.Fields(fld.Name) = fld.Value
Next
rsWrite.Update
Next
DuplicateID=true
Exit_Here:
On Error Resume Next
rsWrite.Close
rsRead.Close
Set rsWrite = Nothing
Set rsRead = Nothing
Exit Function
Err_Handler:
MsgBox Err.Number & " " & Err.Description
Resume Exit_Here
End Function
La gestione errori verifica se implementare delle opzioni o meno…
Da richiamare così:
DuplicateID TuoID_daDuplicare,127
Ovviamente 127 è il numero di ripetizioni…
Non è ottimizzato si può migliorare ma se l'inserimento è al massimo qualche centinaio va benissimo.