从Access VBA全局禁用更新/删除?

时间:2012-05-21 16:47:17

标签: ms-access vba access-vba

我希望为Access .MDB添加一些基本安全性。我想要做的是从VBA查询Active Directory(我有这个代码),然后如果用户不在正确的组中,请为每个表单关闭允许更新,删除,插入数据库。基本上,只允许readonly。

这可能吗?我怎么能在VBA中这样做?有没有办法在autoexec方法中设置一次而不是在每个表单上设置一次?

OR还有另一种提供简单安全性的方法吗?实施例

1 个答案:

答案 0 :(得分:2)

您可以使用以下过程为单个表单设置AllowAdditionsAllowDeletionsAllowEdits

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函数。