MS Access:使用从一个表单中选择的ListBox来过滤另一个表单的结果



这是我的问题:

我正在使用MS Access 2010。我有一个表格,其中有一个列表框,用于保存员工姓名和员工ID,下面有两个命令按钮。一个按钮显示我的所有员工。另一个打开具有筛选条件的模态表单。在这个模型表单中,我有另一个具有不同人力资源类别的列表框(启用了多选)。

我试图做的是:打开我的模式表单,在列表框中选择一个或多个人力资源类别,单击命令按钮,然后关闭模式表单,并根据我选择的某些标准更新员工列表框。

提前感谢您的帮助。这让我有点抓狂:-)

下面是我更新的代码。

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

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

Forms!frm_Employee_Updater.lst_AllEmps.Requery

最新更新