2012-02-13 48 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