如何将ADO Recordset插入MS Access Table

时间:2012-12-04 21:58:17

标签: vba ms-access insert ms-access-2010

问题

我想将当前记录集行插入MS Access表。我目前收到此错误

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

CODE

这是我当前的代码,我试图获取所有列并将它们插入到新表中。

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

我不太确定我错过了什么。

2 个答案:

答案 0 :(得分:11)

打开tblSummary_Appl_Usage_score作为DAO recordset。然后使用其.AddNew方法创建一个新行并存储ADO记录集中的值。

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

使用这种方法,您的代码不需要根据记录集字段数据类型进行不同的调整。只要匹配字段是相同或兼容的数据类型,它就可以正常工作而不管数据类型。

答案 1 :(得分:5)

如果表tblSummary_Appl_Usage_score中的类型字段是数字,请使用:

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

如果类型是字符串,请使用:

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