How to insert ADO Recordset into MS Access Table

2020-02-26 09:27发布

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.

2条回答
聊天终结者
2楼-- · 2020-02-26 10:08

If the type fields in your table tblSummary_Appl_Usage_score are numbers, use this:

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

If the type is string, use this:

DoCmd.RunSQL "INSERT INTO tblSummary_Appl_Usage_score VALUES (""" & rs![Configuration] & """,""" & rs![User Input / Output] & """)"
查看更多
时光不老,我们不散
3楼-- · 2020-02-26 10:08

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.

查看更多
登录 后发表回答