【问题标题】:MS-Access: Using ListBox selections from one form to filter results in another formMS-Access:使用一种形式的列表框选择来过滤另一种形式的结果
【发布时间】:2012-02-13 19:38:13
【问题描述】:

这是我的问题:

我正在使用 MS-Access 2010。我有一个表单,其中有一个为员工姓名和员工 ID 保留的列表框,下面有 2 个命令按钮。一键显示我所有的员工。另一个打开一个带有过滤条件的模态表单。在这个模型表单中,我有另一个具有不同 HR 类别的列表框(启用了多选)。

我正在尝试做的是:打开我的模态表单,在我的列表框中选择一个或多个这些 HR 类别,单击一个命令按钮,然后关闭模态表单并根据我拥有的某些标准更新员工列表框选择。

在此先感谢您的帮助。这让我有点发疯:-)

下面是我更新后的代码。

Private Sub cmd_ExecuteEmpFilter_Click()
    Dim varItem As String
    Dim i As Variant
    Dim strSql As String

    'Building the criteria string from selected items in the list box
    varItem = ""
    For Each i In Me!lst_HRFilter.ItemsSelected
        If varItem <> "" Then
            varItem = varItem & " , "
        End If
        varItem = varItem & Me!lst_HRFilter.ItemData(i) & ""
    Next i

    'Filter the form using selected items inside the list box
    txt_HRCat = varItem

    strSql = "SELECT DISTINCT q.LastName, q.FirstName, q.EmployeeID " & _
    "FROM qry_MasterEmployeeFilter As q " & _
    "WHERE q.HomeTeamID=" & Me.txt_TeamID2 & _
    "AND q.ReportingGroupID IN (" & varItem & ") " & _
    "ORDER BY q.[LastName], q.[FirstName], q.[EmployeeID];"

Debug.Print strSql

Forms!frm_Employee_Updater.lst_AllEmps.RowSource = strSql

DoCmd.Close acForm, "frm_EmployeeFilter", acSaveYes

End Sub

【问题讨论】:

  • 还有什么问题?为什么它不起作用?您是否尝试在代码中设置断点并查看您正在构建的查询是否符合您的预期?尝试将查询放在 SQL 视图中的空查询中并尝试执行它。可能你会看得更清楚。
  • qry_MasterEmployeeFilter.dbo_T_ReportingGroup.ReportingGroupID 是什么?
  • 当我单击命令按钮时,我的模式表单关闭,但我的员工列表根本没有填充。我尝试了您使用空 SQL 视图查询的建议并收到以下错误:“此表达式键入错误或太复杂而无法计算。例如,数字表达式可能包含太多复杂元素”
  • @HansUp - 该字段是我的主要员工查询中的 HR CategoryID。此查询与各种表有多个连接,包括包含我的 HR ID 的 ReportingGroup 表。
  • 删除之前的空格 AND 删除了 TeamID 后面的障碍。查看 Immediate 窗口,TeamID 正在正确注册,但 ReportingGroupID 选择仍未启动。 ...WHERE q.HomeTeamID=3 AND q.ReportingGroupID IN () ORDER BY q.[LastName], q.[FirstName], q.[EmployeeID];

标签: ms-access vba


【解决方案1】:

更改记录源后,您需要重新查询主窗体。

Forms!frm_Employee_Updater.lst_AllEmps.Requery

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2010-10-06
    • 2010-12-16
    • 1970-01-01
    相关资源
    最近更新 更多