Um not that I know of. Probably a shortcoming in all dbs.

Yeah easiest is to to loop through a record.

You can use the recordset.fields value to count th efields and put that in the loop if that makes things easier.
Code:
dim rstSrc as adodb.recordset, rstDest as adodb.recordset
dim lngFlds as long, lngFld as long

rstsrc.open "sql statement",connection,3,3,1
rstdest.open "sql statement",connection,2,3,1

lngflds = rstsrc.fields.count
'---- assuming first col is primary key and autonumber
rstdest.addnew
for lngFld = 1 to lngflds-1
   rstdest(lngfld) = rstsrc(lngfld)
next
rstdest.update
Something like the above. Perhaps.


If you are using a form, you could have a button that loops through all the controls and stores their values to the Tag property. then click the create new button to get a clean form and as long as the form hasn't closed and reopend you could have another button to set the controls on the form from the values held in the tag properties. Almost like a clipboard type operation. Then the user could overwrite some of the data and save as a new record.