如何编写查询以显示0而不是在MS Access中没有结果

时间:2019-02-08 07:17:03

标签: vba ms-access

我在Access 2013中有一个查询,当结果动态集中没有数据时,该查询什么也不显示。我希望它显示为0。

我的报告每个月生成一次,因此我将invClosureDate格式设置为年份和月份。当没有数据时,查询将不返回任何内容,报告要求是在没有数据时显示0。

SELECT Format([invClosureDate],"yyyy") AS invCY, Format([invClosureDate],"mmm") AS invCM, Sum(Abs(IIf([invStatus]="closed",1,0))) AS Inc, tblInvestigations.invClosureDate
FROM tblInvestigations
GROUP BY Format([invClosureDate],"yyyy"), Format([invClosureDate],"mmm"), tblInvestigations.invClosureDate
HAVING (((tblInvestigations.invClosureDate)=[Forms]![tblInvestigations]![txtInvDate]));

2 个答案:

答案 0 :(得分:0)

一种选择是,如前所述,是使用具有零/默认值的联合查询。

另一个选择是构建零/默认值查询,如果数据查询中没有记录,则使用VBA将报表的记录源更改更改为此查询。这需要在打开报告之前完成。

答案 1 :(得分:0)

已解决 SELECT Count(tblInvestigations.invStatus)AS CountOfinvStatus 来自tblInvestigations 在哪里(((((tblInvestigations.invStatus)=“ closed”)AND AND((Format([invClosureDate],“ mmmm”))= [Forms]![tblInvestigations]![txtInvDate]));