验证谁在执行更新,并仅允许具有"supervisor level"访问权限的人员更新字段



我正在尝试不同级别的用户有不同的访问不同的表单字段。有些用户可以在表单上填写字段,有些用户可以更新,有些用户可以删除,以遵守职责分离的原则。在这个字段中,我试图使所有用户都可以填写它,但是,一旦填写,只有主管用户可以更新或删除它。

这就是我所做的,一旦填充,它就无法更新,但是,当"主管级''''用户"尝试更新时,不会重新打开。

Private Sub DateStarted_Click()
If Not IsNull(DateStarted) Then
Me.DateStarted.Locked = True

If DLookup("TFSupervisor", "qrySplashUserCheck") = True Then
Me.DateStarted.Locked = False

Else
Me.DateStarted.Locked = False
End If

End Sub

DLookup将返回在TFSupervisor字段下的qrySplashUserCheck查询中找到的第一个值。如果没有找到,它将返回Null。

因此下面的语句是不正确的。

If DLookup("TFSupervisor", "qrySplashUserCheck") = True Then

你可能要做的是:

If Nz(DLookup("TFSupervisor", "qrySplashUserCheck"), vbNullstring) = "User" Then

(注释后编辑).

放弃DLookup,尝试DCount

DCount("*", "qrySplashUserCheck", "TFSupervisor = True")

为了避免每次都调用DCount(),请有条件地处理它(根据您的示例)。

With DateStarted
If IsNull(.Value) Then 
.Locked = False
Else
.Locked = DCount("*", "qrySplashUserCheck", "TFSupervisor = True") = 0
End If
End With

相关内容

  • 没有找到相关文章

最新更新