2

我从 Office.com 模板(文件 --> 新建 --> Office.com 模板)中获取了一个已经设置好的数据库,因为这个模板已经满足了我 80% 的要求。

然后我更改了这个模板的最后 20%,我进入以下内容: 看起来这个模板是一个 Web 数据库。我完全不确定 Access 中的 Web 数据库和普通数据库的区别,但我确实发现,它们不允许我运行 VBA 代码。至少当我试图通过事件调用它时不会。

有什么办法可以做到这一点吗?或者是否有任何其他方法,例如将网络数据库转换为普通数据库?

4

1 回答 1

3

实际上,您可以从表单事件代码中调用 VBA 代码。但是,它需要一点技巧。

但是,您不需要在您的情况下执行此操作。

请注意,您可以在 Web 应用程序中创建客户端对象并使用客户端 VBA 代码。

这意味着您可以将 VBA 表单添加/混合到该应用程序中(这些客户端对象当然不能在 Web 浏览器中运行,但它们可以在客户端中使用)。

建议#1:隐藏记录导航按钮。

以布局模式打开 Web 表单。移动一个对象(弄脏设计)。

为 VBA 命令提示符敲击 ctrl-g。输入这个:

forms(0).NavigationButtons = False

现在,保存表单。记录导航设置将与表单一起保存。

建议 #2:使用 VBA 打开 Web 表单。使用此代码:

DoCmd.OpenForm "AssetsDetails"
Forms("AssetsDetails").NavigationButtons = False

建议 #3:从表单加载事件中调用 VBA 代码。这有点麻烦,但确实有效:

在表单打开事件中,放置此宏代码:

OpenForm (frmRunVBA,,,Dialog)

请注意,在上面的 WEB MACRO 编辑器中,名为 frmRunVBA 的 VBA 表单不会出现在下拉选择列表中 - 但您可以在名称中键入/强制 - 这是合法的。

现在创建一个名为 frmRunVBA 的 VBA 表单。在表单加载事件中,放置以下代码:

Private Sub Form_Load()

   Forms("AssetDetails").NavigationButtons = False
   DoCmd.Close acForm, Me.Name

End Sub

所以你可以调用VBA代码,但如果你使用tip#1,你真的不需要。

于 2013-01-14T18:00:21.940 回答