我正在尝试输入一些隐藏“设计视图”作为内部应用程序选项的代码,除非满足某个权限要求。
以下代码只有一个例外:
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数据库而不是它的每一个实例。
答案 0 :(得分:3)
我建议将数据库转换为已编译的,仅可执行的.accde文件(文件 - >保存和发布 - >制作ACCDE)。这样做可以防止应用程序中的任何设计或代码更改。保持正常的.accdb格式的开发版本。在那里进行更改,然后为每次更新编译成.accde版本。
由于您的团队经常更新数据库,因此您可以使用Peter De Baets的database starter。数据库启动程序生成数据库前端的本地副本,允许在进行设计更改时继续使用。生产accde前端文件更新后,用户将在下次打开数据库时自动复制新文件。在我的办公室里,我发现我可以推出一个快速修复程序,只需给所有人发送电子邮件,说“关闭并重新打开数据库人员!”。
答案 1 :(得分:0)
所有这些答案都很棒。如果你对最简单的方法感兴趣,我发现表格是关键,尽管是在一个奇怪的地方。
在表单属性 - >其他标签 - >快捷菜单=否