使用用户权限访问控制&组

时间:2013-12-25 16:36:53

标签: sql vba ms-access ms-access-2007 access-vba

我有一个使用MS Access 2007从头开始构建的数据库,其中VBA运行表单,报告和数据表之间的所有脚本(SQL,数据验证等)。我试图在数据库的登录页面上放置一个用户访问实现系统。用户可以是3个组中的1个,管理员(输入系统设置,用户管理),官员(发布数据)或管理员(查看数据)。 用户链接到具有以下内容的用户组表:

ID    UserGroupDescription HideOps  HideAdmin HideManager  
1     Administrator          TRUE    FALSE       TRUE  
2     Operations            FALSE    TRUE        TRUE  
3     Manager                TRUE    TRUE        FALSE  

我想在着陆页上向每个组显示他们的快捷方式(使用标签的.visible属性),但我仍然坚持如何管理查找这些数据,而不是仅在案例陈述中对3组进行硬编码(意思是我已添加任何其他组的代码。) 有没有办法检查哪个标签显示动态?使用sql用户用户组方法。

2 个答案:

答案 0 :(得分:1)

我使用每个组的大标签隐藏所有未经授权的部分(lblHideAdmin& lblHideOps):-)。我在登录后使用TempVar变量设法传递用户组,并在起始页面加载事件中加载 然后使用如下所示的dlookup拉动变量hide / show选项。

UserGroupId = TempVars![UserGroupId]
Me.lblHideAdmin.Visible = True
Me.lblHideOps.Visible = True

OpStatus = True
OpStatus = DLookup("[hideops]", "tblUserGroupDetails", "Id = " & UserGroupId)
Me.lblHideOps.Visible = OpStatus

AdminStatus = True
AdminStatus = DLookup("[HideAdmin]", "tblUserGroupDetails", "Id = " & UserGroupId)
Me.lblHideAdmin.Visible = AdminStatus

答案 1 :(得分:0)

在着陆页表单的表单加载事件中,根据DAO.Recordset表的查询打开user_group。然后使用记录集的HideOpsHideAdminHideManager值来调整这些表单控件的Visible属性。