我使用的是 Access 2013 和 Excel 2013。在引用资料方面,我使用的是 Microsoft Office 15.0 Access 数据库引擎对象库。
所以我尝试在 VBA 中运行 DELETE 查询。这是我到目前为止所拥有的
Sub UpdatePartList()
Dim ws As DAO.Workspace
Dim dbs As DAO.Database
Dim rsTable As DAO.Recordset
Dim rsQuery As DAO.Recordset
Dim rsSql As DAO.Recordset
Set ws = DBEngine.Workspaces(0)
Set dbs = ws.OpenDatabase("P:\Distribution Purchasing\Kit Bids\Kit Parts Query.accdb")
'deletes previous part numbers
Sql = "DELETE * FROM [Kit Parts]"
Set rsSql = dbs.OpenRecordset(Sql, dbOpenDynaset)
当我对同一个表运行 SELECT 查询时,它工作得很好。但是当我尝试删除时,出现此错误。
" Run-time error '3219': Invalid operation. "
最佳答案
DAO
的 OpenRecordSet
不适合 Delete
查询,因为它不返回任何记录集对象。请改用 Execute
方法:
改变
Set rsSql = dbs.OpenRecordset(Sql, dbOpenDynaset)
至
dbs.Execute(Sql)
此外,删除 SQL 语句中也不需要 *
。尽管 Access 会接受它,但其他系统可能不会。
关于sql - 尝试在 VBA 中使用 DAO 运行 DELETE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44638169/