2013-10-17 392 views
1

我有一個名爲「Search」的表單,其中涉及Transaction Search下的部分。它根據從名爲「個人」的表中抽取的全名(Combo40)和委員會在Combo40中選擇的用戶在委員會字段中貢獻的委員會調用查詢:msaccess sql查詢協助

委員會查詢:

SELECT Transactions.[Committee Name] FROM Transactions GROUP BY Transactions.[Committee Name], Transactions.[Employee Name] HAVING (((Transactions.[Employee Name])=[Forms]![Search]![Combo40])); 

我試圖添加一個額外的參數,該參數還比較了個人給出的年份,該年份是Combo46交易表中的一個特定字段。

新查詢:

SELECT Transactions.[Committee Name] FROM Transactions GROUP BY Transactions.   [Committee Name], Transactions.[Employee Name] HAVING (((Transactions.[Employee Name])=Forms!Search!Combo40) And (((Transactions.Combo46)=Forms!Search!Combo51))) 

Forms!Search!Combo40 = pulls the values from a table called 「Individuals」 
Transactions.Combo46 = year (i.e. 2011, 2012, 2013 etc.) 
Forms!Search!Combo51 = year (i.e. 2011, 2012, 2013 etc.) 

當我做的形式,我得到的是要求我對組合46和委員會名單輸入值的窗口上我的選擇顯示爲個人和所有記錄不只是交易與我進入的那一年。我預計它根本不會彈出一個彈出窗口,而是從事務表中的Combo46中取值,並將其與Combo51中輸入的值進行比較。

screenshot1

screenshot2

回答

3

它太長,不清晰的評論,所以我用這個anwser空間:

我假設表列Transactions.Combo46不存在,那麼交易。 Combo46是由Access for Input推廣的,它應該是Transactions.Year或者其他意思:

SELECT Transactions.[Committee Name] 
FROM Transactions 
GROUP BY Transactions.[Committee Name], Transactions.[Employee Name] 
HAVING (((Transactions.[Employee Name])=Forms!Search!Combo40) 
And (((Transactions.Year)=Forms!Search!Combo51))) 
2

jacouh說的肯定是答案(即,當你的SQL是Forms!Search的成員時,你的SQL是指Combo46作爲Transactions的成員)。作爲appendum,我會簡化事情有點像這樣:

(1)名稱,而不是讓他們爲Combo40Combo51組合框一些明智的(例如cboNamecboYear)(呸!)。

(2)GROUP BY似乎沒有必要對我說:

SELECT DISTINCT [Committee Name] FROM Transactions 
WHERE ([Employee Name] = Forms!Search!cboName) AND ([Year] = Forms!Search!cboYear)