1

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

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

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

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

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

4

2 回答 2

5

将数据库拆分为带有表单/模块/等的单独前端。和带有表格的后端选项?这样,如果前端被锁定,后端仍然可以访问。Access 有一个用于此目的的数据库拆分向导。

于 2009-07-28T03:46:51.360 回答
0

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

于 2009-07-28T18:45:30.717 回答