2012-02-13 44 views
1

这里过滤结果是我的问题:MS-交通:从一种形式使用列表框选择以另一种形式

我与MS-Access 2010中工作,我有一个形式与员工姓名和员工保留一个列表框ID下面有两个命令按钮。一个按钮显示我所有的员工。另一个打开一个带有过滤条件的模态窗体。在这个模型中,我有另一个带有不同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

问题是什么?为什么它不起作用?您是否尝试在代码中设置断点并查看您正在构建的查询是否看起来如何?尝试将查询置于SQL视图中的空查询中,并尝试执行它。可能你会看到更清晰的。 – 2012-02-13 19:52:25

+0

什么是'qry_MasterEmployeeFilter.dbo_T_ReportingGroup.ReportingGroupID'? – HansUp 2012-02-13 20:04:42

+0

当我点击命令按钮时,我的模式窗体关闭,但我的员工列表根本没有填充。我尝试了使用空的SQL视图查询的建议,并得到以下错误:“该表达式输入错误或者它太复杂,无法进行评估。例如,数字表达式可能包含太多复杂元素” – Beebes 2012-02-13 20:11:37

回答

0

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

Forms!frm_Employee_Updater.lst_AllEmps.Requery