运行操作查询后无法保存 MS Access 模块

问题描述 投票:0回答:0

我在 MS Access 2019 数据库模块的某处有这段代码:

    BeginTrans
    DBEngine(0)(0).Execute "delete from table1 where field1=""value1"""
    CommitTrans

运行此代码后,我无法保存任何数据库文档对象:模块、表单或报表。 尝试保存时,出现两个消息选项之一:

  1. Microsoft Access 无法保存设计更改或保存到新的数据库对象,因为该文件已被其他用户打开。 要保存设计更改或保存到新对象,您必须具有对该文件的独占访问权限。

  2. 您目前没有独占访问权限。 如果您继续进行更改,以后将无法保存它们。

我尝试使用

currentdb()
而不是
DBEngine(0)(0)
但没有成功。 只有
docmd.runsql
可以正常工作,但它不是执行查询的首选方法。

还尝试使用

workspaces
,
databases
,
tabledefs
集合的刷新方法,但没有成功。

我在早期版本的 Access(2003 及更早版本)中没有这样的问题。

这是已知问题吗?如何解决?

更新 解决了。将数据库拆分为前端/后端,问题就消失了。

(不过好像有点bug)

vba ms-access dao
© www.soinside.com 2019 - 2024. All rights reserved.