我希望为Access .MDB添加一些基本安全性。我想要做的是从VBA查询Active Directory(我有这个代码),然后如果用户不在正确的组中,请为每个表单关闭允许更新,删除,插入数据库。基本上,只允许readonly。
这可能吗?我怎么能在VBA中这样做?有没有办法在autoexec方法中设置一次而不是在每个表单上设置一次?
OR还有另一种提供简单安全性的方法吗?实施例
答案 0 :(得分:2)
您可以使用以下过程为单个表单设置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
函数。