如何在共享和独占模式之间切换Access数据库?

时间:2009-07-28 03:31:18

标签: ms-access vba access-vba dao

我正在开发一个需要编辑Access数据库中某些对象的程序。它还运行一个子程序(长篇故事),尝试访问底层JET数据库,而Access仍然通过ODBC打开它

问题在于,一旦我开始使用VBA编辑Form对象 - 例如,使用Application.LoadFromText - Access会将数据库更改为独占模式。独家模式本身很好,我知道它为什么需要它。但我之后需要能够切换回“共享”模式,以便我可以运行我的子程序。

我观察到如果您使用UI在设计模式下打开表单,Access会将数据库切换到Exclusive。 (您可以通过尝试从另一台计算机打开它来确认这一点。)但是当您关闭表单设计器时,Access会立即将其切换回共享模式,这是我希望的。

有没有办法使用VBA / COM调用自己来回切换?

我知道我可以调用Application.CloseCurrentDatabase(),然后调用OpenCurrentDatabase(),但这会关闭所有窗口并扰乱UI,所以它并不理想。

2 个答案:

答案 0 :(得分:5)

将数据库拆分为带有forms / modules / etc的单独前端。和表后端的选项?这样,如果前端被锁定,后端仍然可以访问。 Access只有一个数据库拆分向导。

答案 1 :(得分:0)

您可以尝试.UserControl和.Visible。我使用它们在自动化过程中转移控制。我不知道他们是否会在这里提供帮助,但如果他们不这样做,你可以进行投票。