分用户组权限查看相应的内容-听_feng
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


分用户组权限查看相应的内容

发表时间:2017/9/4 16:32:00 评论(3) 浏览(6844)  评论 | 加入收藏 | 复制
   
摘 要:根据不同用户组显示不同的结果。
部门负责人查看该部门所有数据,普通成员查看当前用户的数据
正 文:

a. 建立相应的用户组

b. 建立用户组查询

c. 在相关的表中加入用户字段

c. 在窗体代码中加入权限代码



Private Sub Form_Load()
    Set mclsQuery = New GeneralQuery
    With mclsQuery
        .QueryForm = Me.sfrQuickQuery
        .DataForm = Me.sfrList
        .AddAllFields
        .FieldName = "xmID"
    End With
    
    '---------------------分权限管理代码段开始----------------------'
    Dim Role As String
        Role = Forms!SysFrmMain!RoleName
        Select Case Role
            Case "系统管理员"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject"
            
            Case "总经理"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject"
            
            Case "市场部负责人"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject"
            
            Case "市场部"
            Me.sfrListMe.sfrList.Form.RecordSource = "Select * FROM qryProject"
            
            Case "北京销售组负责人"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Sales.Nickname in (Select Nickname from qryUser_SalesGrpBj)"
            '查询北京销售组所有成员的信息
            
            Case "北京销售组"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Sales.Nickname = Forms!SysFrmMain!Nickname"
            
            Case "上海销售组负责人"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Sales.Nickname in (Select Nickname from qryUser_SalesGrpSh)"
            '查询上海销售组所有成员的信息
            
            Case "上海销售组"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Sales.Nickname = Forms!SysFrmMain!Nickname"
                
            Case "成都销售组负责人"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Sales.Nickname in (Select Nickname from qryUser_SalesGrpCd)"
            '查询成都销售组所有成员的信息
            
            Case "成都销售组"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Sales.Nickname = Forms!SysFrmMain!Nickname"
                       
            Case "技术部负责人"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Tech.Nickname in (Select Nickname from qryUser_Tech)"
            '查询技术部所有成员的信息
            
            Case "技术部"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Tech.Nickname = Forms!SysFrmMain!Nickname"
            
            Case Else
            MsgBox "对不起,您无权查看此内容!"
            Me.sfrList.Form.RecordSource = "Select * FROM qryProject Where qryUser_Sales.Nickname = Null"
        End Select
      
    '---------------------分权限管理代码段结束----------------------'
    
    Me.Recalc
End Sub


但是发现执行效率比较低,还望大家帮忙优化一下


Access软件网交流QQ群(群号:198465573)
 
 相关文章
access开发平台--当<部门及用户组权限设置>变成空白了的解决...  【缪炜  2012/3/26】
快速开发平台--获取当前登录名\获取当前用户名\获取当前操作员的代...  【红尘如烟  2013/5/13】
Access快速开发平台V1.7.2版--操作员只能看到自己录入的...  【缪炜  2014/9/5】
Access没有使用对象的必要权限解决方案(ACCESS取消权限 ...  【宏鹏(转载)  2015/3/11】
Access开发平台--获取当前登录名\用户名\操作员及其它用户权...  【杜超  2016/8/29】
Access开发平台--对窗体数据字段的权限控制  【杜超  2017/8/7】
常见问答
技术分类
相关资源
文章搜索
关于作者

听_feng

文章分类

文章存档

友情链接