我正在尝试使用基于每日查询的一些自定义统计信息在Access中构建摘要报告。但是,我遇到了一些困难。当我使用根据所述查询构建的报告时,无论公式如何,我都会获得相同的确切数字。
我正在构建一个公式来计算字段中的文本值或计算字段中的所有响应,但公式将始终返回18作为值(记录总数),即使我知道它是假的式。或者,我将创建一个空白报告,无论我做什么,都会收到#Error或#Name?文本框中的值。我已检查过,控件中的名称不是公式中的任何名称或其他任何名称 - 我通常将其重命名为Text0或Demo。
我一直试图使用的公式是
=Count(IIf([Daily_Numbers_Query].[Signed_Card] Is Not Null,1,0));
其中Daily_Numbers_Query引用查询,Signed_Card引用我想从该查询中检查的字段。我想让它告诉我Signed_Card有一个值并且不为空的记录数。
非常感谢任何帮助。
答案 0 :(得分:0)
Count
是SQL中的聚合函数,但您无法在表达式中直接使用它。
为此,您使用域功能:DCount
,DSum
,...
在这种情况下,最简单的是:
=DCount("*", "Daily_Numbers_Query", "[Signed_Card] Is Not Null")
如果您想使用IIf
,则必须使用DSum
:
=DSum(IIf([Daily_Numbers_Query].[Signed_Card] Is Not Null,1,0))
答案 1 :(得分:0)
你说查询是在报告的RecordSource中,那么只需要使用正确的false返回。此外,可能不需要查询名称前缀。
=Count(IIf([Signed_Card] Is Not Null, 1, Null))
或
=Count(IIf(Not IsNull([Signed_Card]), 1, Null))
或
=Sum(IIf([Signed_Card] Is Not Null, 1, 0))