我正在开发一个需要编辑 Access 数据库中的某些对象的程序。它还运行一个子程序(长篇故事),该子程序尝试访问底层 JET 数据库,而 Access 仍然通过 ODBC 打开它。
问题是,一旦我开始使用 VBA 编辑表单对象 - 例如,使用 Application.LoadFromText - Access 会将数据库更改为独占模式。独占模式本身很好,我知道它为什么需要它。但是之后我需要能够切换回“共享”模式,以便我可以运行我的子程序。
我观察到,如果您使用 UI 在设计模式下打开表单,Access 会将数据库切换到独占模式。(您可以通过尝试从另一台计算机打开它来确认这一点。)但是当您关闭表单设计器时,Access 会立即将其切换回共享模式,这正是我所希望的。
有没有办法自己使用 VBA / COM 调用来回切换它?
我知道我可以调用 Application.CloseCurrentDatabase(),然后调用 OpenCurrentDatabase(),但这会关闭所有窗口并扰乱 UI,所以它并不理想。