2

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

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

或者是否有另一种方法在这里提供简单的安全性?例子?

4

1 回答 1

2

您可以使用以下过程为单个表单设置AllowAdditionsAllowDeletions和: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函数。RunCodeautoexec

于 2012-05-21T20:58:33.433 回答