3

我正在尝试输入一些隐藏“设计视图”的代码作为我们内部应用程序的选项,除非满足特定的权限要求。

以下代码适用于一个例外:

On Error Resume Next
If Not GetUserInfo("ADMIN_PERMIS") = 1 Then
    Dim cb As CommandBar
    Dim cbCtl As CommandBarControl
    For Each cb In CommandBars
        If cb.type = msoBarTypePopup Then
            For Each cbCtl In cb.Controls
                If cbCtl.Caption = "&Design View" Then
                    cbCtl.enabled = True
                    cbCtl.visible = False
                Else
                    cbCtl.visible = True
                End If
            Next
        End If
    Next
    Set cb = Nothing: Set cbCtl = Nothing
End If

这样做的一个问题是它不仅对当前数据库禁用设计视图,而且对启动的任何其他访问数据库禁用设计视图。我正在寻找一种方法来尝试应用此代码,使其仅影响我拥有代码的 Access 数据库,而不影响它的每个实例。

4

2 回答 2

4

我建议将数据库转换为已编译的、仅可执行的 .accde 文件(文件 --> 保存和发布 --> 生成 ACCDE)。这样做将防止应用程序中的任何设计或代码更改。保持正常的 .accdb 格式的开发版本。在那里进行更改,然后为每次更新编译成 .accde 版本。

由于您的团队经常更新数据库,因此您可以从使用 Peter De Baets 的数据库启动器中受益。数据库启动器制作数据库前端的本地副本,允许用户在进行设计更改时继续工作。生产acde前端文件更新后,用户下次打开数据库时会自动复制新文件。在我的办公室里,我发现我可以推出一个快速修复程序,然后简单地给每个人发电子邮件说“关闭并重新打开数据库!”。

于 2013-08-22T21:24:24.687 回答
0

所有这些答案都很棒。如果您对最简单的方法感兴趣,我发现表单是关键,尽管在一个奇怪的地方。

在表单属性->其他选项卡->快捷菜单=否

于 2015-06-13T17:04:19.257 回答