在全局变量上过滤组合框

时间:2012-02-15 07:43:27

标签: ms-access vba combobox global-variables

所以我有这个Access 2010数据库,用户必须登录。他们使用的用户名保存为全局变量。然后,我有一个表格,当他们输入数据并点击“保存”按钮时更新表格。我正在尝试设置一个当前链接到表中的列的组合框(用户),以便在全局变量上进行过滤,这样每个人只能在自己的用户名下输入数据。这可能吗?有没有人知道如何编码?我是Access和VBA的完全新手,非常感谢任何帮助

电贺 我

2 个答案:

答案 0 :(得分:0)

在该表单的form_load()函数中,您应该使用全局变量填充组合框。为了确保它们无法编辑你也应该禁用组合框。

 Private Sub Form_Load()
      Me.myComboBoxName = gMyGlobalVariableName
      Me.myComboBoxName.enabled = false
 End Sub

但是我假设组合框有两列(id和username),其中第一列是隐藏的,而某些表的主键是存储所有用户名的。 gMyGlobalVariableName应该存储了id,而不是用户名本身。

答案 1 :(得分:0)

您可以在表单的load事件中设置组合的行源,以仅包含相关行。

Me.TheCombo.RowSource = _
    "SELECT UserColumn, Etc FROM TheTable WHERE UserColumn ='" _
    & TheVariable & "'"

您可能还希望确保表单仅包含相关记录,但是,您有一个保存按钮,建议使用未绑定的表单。在Access中,保存按钮在很大程度上是多余的,因为默认情况下是保存记录并且停止保存是困难的。

我想知道为什么你不使用他们的Windows登录用户名?