我正在尝试使用比隐藏导航面板和隐藏后端文件更可靠的方法来保护数据库。有没有办法完全密码保护所有对象不被修改或访问?当他们尝试通过表单修改表数据时,这会导致麻烦吗?如果是这样,我猜测可以使用VBA临时解锁表。
答案 0 :(得分:0)
好的,所以我必须做4件事:
创建一个名为USysRibbons的表。它应该有两个属性:RibbonName(key)和RibbonXML。在RibbonName中放置您想要的任何名称,但在RibbonXML中,放置:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="true">
<qat>
<sharedControls>
<control idMso="ImportExcel" label="Import from Excel" enabled="true"/>
</sharedControls>
</qat>
</ribbon>
<backstage>
<button idMso="ApplicationOptionsDialog" visible="false"/>
</backstage>
</customUI>
设置<ribbon startFromScratch="true">
非常重要,因为它会阻止用户右键单击功能区或快速访问工具栏,选择自定义功能区以及从那里访问菜单。 <qat>
标记中的内容只是在快速访问工具栏中添加“从Excel导入”按钮。
然后转到选项&gt;当前数据库&gt;功能区名称,然后选择刚刚创建的功能区记录。但是如果他们在打开文件时按住SHIFT键,他们就可以看到所有对象,选项等等!为了防止这种情况,我们需要一些VBA来禁用和启用该选项。
在VBA编辑器中,添加一些与此类似的东西:
If InStr(globalstrPermission, "admin") <> 0 Then 'If logging in as the admin
Dim prop As Property
On Error GoTo SetProperty 'if property is already set and appended, skip down to the popup
Set prop = CurrentDb.CreateProperty("AllowBypassKey", dbBoolean, False) 'create and set the property
CurrentDb.Properties.Append prop
SetProperty:
If MsgBox("Do you wanna turn on bypass key?", vbYesNo, "Allow Bypass") = vbYes Then
CurrentDb.Properties("AllowBypassKey") = True 'MAKE SURE THIS SAYS TRUE OR YOU WILL LOCK YOURSELF OUT OF DEVELOPER TOOLS FOREVER
Else
CurrentDb.Properties("AllowBypassKey") = False
End If
End If
现在运行该功能并选择&#34; no&#34;时,它会阻止SHIFT技巧工作。但是如果你想让它工作,请登录并点击&#34; yes&#34;并关闭数据库并使用SHIFT打开它。
随着帖子的拖延,我的措辞变得更加基本,但希望它仍然很容易理解。