|
红尘版主是如何做的,我没有看过, 不过这种权限控制可以通过这种方法实现:
比如权限表中设置有下面栏位:
用户(文本)/窗体名(文本)/打开(是/否)/新增(是/否)/更改(是/否)/删除(是/否)
一个用户对每一个窗体都设定相应的权限,比如用户a对窗体的AA的权限如下:
a/AA/-1/-1/-1/0 (a用户对AA窗体有打开/新增/更改的权限,但无删除权限)
那么在窗体的打开事件写下(假如用户名已经保存到UserID这个变量中):
Private Sub Form_Open(Cancel As Integer)
If Nz(DLookup("[删除]", "权限表", "[窗体名]='AA' AND [用户]='" & UserID & "'"), 0) = 0 Then
MsgBox "对不起,你的权限不可开启本窗体", vbCritical
Cancel = True
End If
End Sub
加载事件中可以这么写
Private Sub Form_Load()
Me.AllowAdditions = Nz(DLookup("[新增]", "权限表", "[窗体名]='AA' AND [用户]='" & UserID & "'"), 0)
Me.AllowEdits = Nz(DLookup("[修收]", "权限表", "[窗体名]='AA' AND [用户]='" & UserID & "'"), 0)
Me.AllowDeletions = Nz(DLookup("[删除]", "权限表", "[窗体名]='AA' AND [用户]='" & UserID & "'"), 0)
End Sub |
|