我有一个使用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用户用户组方法。
答案 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
。然后使用记录集的HideOps
,HideAdmin
和HideManager
值来调整这些表单控件的Visible属性。