【发布时间】:2014-06-24 21:29:55
【问题描述】:
我有一个类似于 SQL 的查询:
SELECT a,b,c
FROM tableA
WHERE d = "something"
GROUP BY a,b,c
查询本身就可以正常工作。
在报表中使用查询时,它工作正常。
如果我尝试应用类似的过滤器
d="something" and e="whatever"
到报表的 OnActivate 事件中报表的记录源,它提示输入“e”的值并且不选择任何内容,即使我在提示“e”时输入“whatever”。
我的理解是“过滤器”只是查询的 WHERE 子句,但在 TOTALs 查询(即包含 GROUP BY 子句)的情况下,它看起来更像是 HAVING 子句。这是怎么回事?有什么办法吗?
为了回答我的第二个问题,我通过在报表的 OnOpen 事件中构建整个 SELECT 语句来解决它,然后使用它来设置 RecordSource。但是,我仍然想了解当 SELECT 语句中有 GROUP BY 子句时过滤器是如何工作的。
【问题讨论】:
-
你确定条件满足?尝试
OR条件而不是d="something" or e="whatever" -
我确定。在 OnActivate 事件中,我使用 debug.print 来显示实际的 RecordSource 和 Filter,当我直接在查询中使用这些值时,它工作正常,即选择记录。
标签: sql group-by ms-access-2007 where-clause