我正在开发一个需要编辑Access数据库中某些对象的程序。它还运行一个子程序(长篇故事),尝试访问底层JET数据库,而Access仍然通过ODBC打开它。
问题在于,一旦我开始使用VBA编辑Form对象 - 例如,使用Application.LoadFromText - Access会将数据库更改为独占模式。独家模式本身很好,我知道它为什么需要它。但我之后需要能够切换回“共享”模式,以便我可以运行我的子程序。
我观察到如果您使用UI在设计模式下打开表单,Access会将数据库切换到Exclusive。 (您可以通过尝试从另一台计算机打开它来确认这一点。)但是当您关闭表单设计器时,Access会立即将其切换回共享模式,这是我希望的。
有没有办法使用VBA / COM调用自己来回切换?
我知道我可以调用Application.CloseCurrentDatabase(),然后调用OpenCurrentDatabase(),但这会关闭所有窗口并扰乱UI,所以它并不理想。
答案 0 :(得分:5)
将数据库拆分为带有forms / modules / etc的单独前端。和表后端的选项?这样,如果前端被锁定,后端仍然可以访问。 Access只有一个数据库拆分向导。
答案 1 :(得分:0)
您可以尝试.UserControl和.Visible。我使用它们在自动化过程中转移控制。我不知道他们是否会在这里提供帮助,但如果他们不这样做,你可以进行投票。