How to insert ADO Recordset into MS Access Table

zach picture zach · Dec 4, 2012 · Viewed 33.6k times · Source

PROBLEM

I want to insert the current recordset row into a MS Access table. I am currently getting this error

Syntax error (missing operator) in query expression 'rs[columnname]'

CODE

Here is my current code, I am trying to grab all the columns and insert them into a new table.

DoCmd.RunSQL "INSERT INTO tblSummary_Appl_Usage_score VALUES (rs[Configuration], rs[User Input / Output])"

I am not quite sure what i am missing.

Answer

HansUp picture HansUp · Dec 4, 2012

Open tblSummary_Appl_Usage_score as a DAO recordset. Then use its .AddNew method to create a new row and store the values from your ADO recordset.

Dim db As DAO.database
Dim rsDao As DAO.Recordset
Set db = CurrentDb
Set rsDao = db.OpenRecordset("tblSummary_Appl_Usage_score", dbOpenTable, dbAppendOnly)
rsDao.AddNew
rsDao![Configuration] = rs![Configuration]
rsDao![User Input / Output] = rs![User Input / Output]
rsDao.Update

With this approach, your code needn't be adapted differently based on the recordset field data types. It will work correctly regardless of data type as long as the matching fields are both the same or compatible data types.