MS Access SQL IN子句无法写入数据库

时间:2018-08-20 09:15:30

标签: sql ms-access access-vba

我最近在继承的数据库中重新编写了VBA代码,以包含连接到数据库的IN语句,而不是一直保持链接表的连接(接近400个用户将在任何一个用户处打开前端时间,因此它使得尝试访问数据库以使设计变更几乎不可能)。

但是,使用IN子句从数据库中读取数据效果很好,但是在write语句上使用它们似乎可以在VBA中执行,但实际上并没有对数据库进行任何更改。

此处未写声明:

CurrentDb.Execute " UPDATE [PS_DB] " & _
                " IN '' [MS Access;PWD=*passwd string here*;DATABASE=I:\*filepath here*\PM_DB_testenvironment.accdb] " & _
                " SET [PS_DeleteTS]= '" & Format(Now, "dd/mm/yy hh:mm") & " - " & usernm & "'" & _
                " WHERE PS_DB.PS_TeamName = '" & tm & "' AND [PS_Delete]= TRUE; "

删除IN子句并执行该语句,就可以将其写入数据库。

是否可能需要在此处设置数据库的读/写状态?

1 个答案:

答案 0 :(得分:3)

使用CurrentDb在另一个Access数据库上执行查询是一种错误的做法。

相反,打开与该数据库的连接:

Dim db As DAO.Database
Set db = DBEngine(0).OpenDatabase("I:\*filepath here*\PM_DB_testenvironment.accdb", False, False, "MS Access;PWD=*passwd string here*")
db.Execute "your query", dbFailOnError
db.Close