设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1350|回复: 2
打印 上一主题 下一主题

[帮助] 请问红尘如烟,您的通用系统中权限的问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-14 08:20:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问你的系统中,是如果将权限表与操作结合起来的,能简述一下你的原理吗,然后我再对着代码学习
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-4-14 08:52:35 | 只看该作者
红尘版主是如何做的,我没有看过, 不过这种权限控制可以通过这种方法实现:
比如权限表中设置有下面栏位:
用户(文本)/窗体名(文本)/打开(是/否)/新增(是/否)/更改(是/否)/删除(是/否)   
一个用户对每一个窗体都设定相应的权限,比如用户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
3#
 楼主| 发表于 2011-4-14 14:38:59 | 只看该作者
本帖最后由 fxbianxiu 于 2011-4-14 14:41 编辑

多谢楼上的元老大人,我明白点啦,有不会的再请教

要是对菜单设置权限也和上面的方法一个思路吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 01:22 , Processed in 0.084889 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表