1

我有一个名为“搜索”的表格,其中包含有关“交易搜索”部分的问题。它调用基于全名 (Combo40) 选择的查询,该查询从名为“个人”的表中提取,并且用户在 Combo40 中选择的委员会在委员会字段中做出了贡献:

委员会查询:

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.)

当我在表格上进行选择时,我会看到一个窗口,要求我输入 Combo 46 的值,委员会列表会显示该个人的所有记录,而不仅仅是我输入的年份的交易。我希望它根本不会出现弹出窗口,而是从 Transactions 表中的 Combo46 中获取值并将其与 Combo51 中输入的值进行比较。

截图1

截图2

4

2 回答 2

3

评论太长而且不清楚,所以我使用这个anwser空间:

我想表格列 Transactions.Combo46 不存在,所以 Transactions.Combo46 由 Access 弹出输入,它应该是 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)))
于 2013-10-17T17:40:47.527 回答
2

jacouh 所说的肯定是答案(即,您的 SQL 指Combo46的是Transactions当它是 的成员时的成员Forms!Search)。作为附录,我会稍微简化一下:

(1) 将组合框命名为合理的名称(例如cboNameand cboYear),而不是将它们保留为Combo40and Combo51(糟糕!)。

(2)GROUP BY对我来说似乎没有必要:

SELECT DISTINCT [Committee Name] FROM Transactions
WHERE ([Employee Name] = Forms!Search!cboName) AND ([Year] = Forms!Search!cboYear)
于 2013-10-17T18:05:05.063 回答