尝试在VBA中使用DAO运行DELETE查询

我使用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查询,它工作得很好。 但是,当我尝试删除,我得到这个错误。

“运行时错误”3219“:操作无效。”

DAOOpenRecordSet不适用于Delete查询,它不返回任何logging集对象。 改用Execute方法:

更改

 Set rsSql = dbs.OpenRecordset(Sql, dbOpenDynaset) 

 dbs.Execute(Sql) 

在删除SQL语句中也不需要* 。 虽然Access会接受,但其他系统可能不会。

你可以修改你的SQL为@Rahulbuild议,再加上你的最后一行代码:

 dbs.Execute sql