我在 MS Access 2019 数据库模块的某处有这段代码:
BeginTrans
DBEngine(0)(0).Execute "delete from table1 where field1=""value1"""
CommitTrans
运行此代码后,我无法保存任何数据库文档对象:模块、表单或报表。 尝试保存时,出现两个消息选项之一:
Microsoft Access 无法保存设计更改或保存到新的数据库对象,因为该文件已被其他用户打开。 要保存设计更改或保存到新对象,您必须具有对该文件的独占访问权限。
您目前没有独占访问权限。 如果您继续进行更改,以后将无法保存它们。
我尝试使用
currentdb()
而不是 DBEngine(0)(0)
但没有成功。
只有 docmd.runsql
可以正常工作,但它不是执行查询的首选方法。
还尝试使用
workspaces
, databases
, tabledefs
集合的刷新方法,但没有成功。
我在早期版本的 Access(2003 及更早版本)中没有这样的问题。
这是已知问题吗?如何解决?
更新 解决了。将数据库拆分为前端/后端,问题就消失了。
(不过好像有点bug)