在MS Access中禁用设计视图

时间:2013-04-11 19:34:23

标签: ms-access

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

以下代码只有一个例外:

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数据库而不是它的每一个实例。

2 个答案:

答案 0 :(得分:3)

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

由于您的团队经常更新数据库,因此您可以使用Peter De Baets的database starter。数据库启动程序生成数据库前端的本地副本,允许在进行设计更改时继续使用。生产accde前端文件更新后,用户将在下次打开数据库时自动复制新文件。在我的办公室里,我发现我可以推出一个快速修复程序,只需给所有人发送电子邮件,说“关闭并重新打开数据库人员!”。

答案 1 :(得分:0)

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

在表单属性 - >其他标签 - >快捷菜单=否