MS-Access:使用一个表单中的ListBox选项以另一种形式过滤结果

时间:2012-02-13 19:38:13

标签: ms-access access-vba

这是我的问题:

我正在使用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

1 个答案:

答案 0 :(得分:0)

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

Forms!frm_Employee_Updater.lst_AllEmps.Requery