过滤全局变量的组合框
Posted
技术标签:
【中文标题】过滤全局变量的组合框【英文标题】:Filter combobox on global variable 【发布时间】:2012-02-15 07:43:26 【问题描述】:所以我有这个用户必须登录的 Access 2010 数据库。他们使用的用户名被保存为全局变量。然后我有一个表格,当他们输入数据并单击“保存”按钮时,它会更新表格。我正在尝试将当前链接到表中列的组合框(用户)之一设置为在全局变量上进行过滤,以便每个人只能在自己的用户名下输入数据。这可能吗?有人知道如何编码吗?我是 Access 和 VBA 的新手,如果有任何帮助,我将不胜感激
问候 我
【问题讨论】:
【参考方案1】:在该表单的 form_load() 函数中,您应该使用全局变量填充组合框。为确保他们无法编辑,您也应该禁用组合框。
Private Sub Form_Load()
Me.myComboBoxName = gMyGlobalVariableName
Me.myComboBoxName.enabled = false
End Sub
但是我假设组合框有两列(id 和用户名),其中第一列是隐藏的,以及存储所有用户名的某个表的主键。 gMyGlobalVariableName 应该存储的是 id,而不是用户名本身。
【讨论】:
嗨,SouthLI 之前尝试过这个,它给了我一个错误,说我无法设置该字段的值。我认为这是因为表单绑定到该字段是查找的表【参考方案2】:您可以在表单的加载事件中设置组合的行源以仅包含相关行。
Me.TheCombo.RowSource = _
"SELECT UserColumn, Etc FROM TheTable WHERE UserColumn ='" _
& TheVariable & "'"
您可能还希望确保表单仅包含相关记录,但是,您有一个保存按钮这一事实表明表单未绑定。在 Access 中,保存按钮在很大程度上是多余的,因为默认是保存记录,而停止保存是困难的部分。
我想知道你为什么不使用他们的 windows 登录用户名?
【讨论】:
嗨 Remou - 我没有使用他们的 Windows 登录,因为我读到 Access 2010 没有用户级别的安全性,您必须自己编写代码。我还有一个保存按钮,因为我的老板希望用户不能回到旧表单。因此,我使用的表单绑定到表格,但我已对其进行设置,除非您是管理员,否则不会显示任何导航按钮或菜单。至于你的解决方案,它给出了与 SouthL 相同的响应。 组合的当前行源是什么?以上是关于过滤全局变量的组合框的主要内容,如果未能解决你的问题,请参考以下文章