过滤全局变量的组合框

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 相同的响应。 组合的当前行源是什么?

以上是关于过滤全局变量的组合框的主要内容,如果未能解决你的问题,请参考以下文章

axure全局变量怎么用?axure如何设置全局变量?求助!!

python函数中局部变量与全局变量遵守规则

Python--局部变量和全局变量

vue2.0 全局变量怎么设置

如何在文本框中显示全局 [静态] 变量的内容?

微信小程序实现全局搜索代码高亮