我希望为 Access .MDB 添加一些基本的安全性。我想做的是从 VBA 查询 Active Directory(我有这个代码),然后如果用户不在正确的组中,请关闭数据库中每个表单的允许更新、删除、插入。基本上,只允许只读。
这可能吗?我怎样才能在 VBA 中做到这一点?有没有办法在 autoexec 方法中设置一次,而不是在每个表单上设置一次?
或者是否有另一种方法在这里提供简单的安全性?例子?
您可以使用以下过程为单个表单设置AllowAdditions
、AllowDeletions
和:AllowEdits
Public Sub SetFormEdit(ByVal pName As String, _
ByVal pReadOnly As Boolean)
Dim frm As Form
DoCmd.OpenForm pName, acDesign
Set frm = Forms(pName)
frm.AllowAdditions = pReadOnly
frm.AllowDeletions = pReadOnly
frm.AllowEdits = pReadOnly
DoCmd.Close acForm, pName, acSaveYes
Set frm = Nothing
End Sub
要为您的所有表格运行该程序...
Public Function SetAllFormsEdit()
Dim blnReadOnly As Boolean
Dim frm As Object
'load value for blnReadOnly from your existing AD code '
For Each frm In CurrentProject.AllForms
SetFormEdit frm.Name, blnReadOnly
Next frm
Set frm = Nothing
End Function
然后从宏的操作中调用该SetAllFormsEdit
函数。RunCode
autoexec