在MS Access中,当查询结果为空时,是否有一个简单的方法来显示0.00美元的金额?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MS Access中,当查询结果为空时,是否有一个简单的方法来显示0.00美元的金额?相关的知识,希望对你有一定的参考价值。

在我的MS Access报表中,如果从查询中返回的一个金额(如数量)为空,因为查询表为空,计算的货币字段就会显示#Type!或#Error!。 有没有一种简单的方法来显示打印这些字段的$0.00?

我在本站和其他资料上调查了许多替代方法,并尝试了Nz(数量,0)、IIf(([数量])为空、0、([数量]*[单位成本])等各种组合,都没有好的结果。

答案

你的yesno问题的直接答案是 "No"。我知道的选项只有

1)如果没有数据,就不要打开报表。

一种方法是使用OnNoData事件

Private Sub Report_NoData(Cancel As Integer)
MsgBox "There is no data, report opening is cancelled."
Cancel = True
End Sub

但是,为了处理错误2501,需要在打开报告的过程中进行错误处理--复查。访问。取消生成报告导致错误2501

另一种方法是,如果没有数据,甚至不打开报表--在作为报表RecordSource的表或查询对象上进行DCount或DLookup(使用应用于报表的相同的过滤条件),并根据返回的值使用If Then条件。

2) 在查询中进行计算,而不是在报表上使用文本框,当没有数据时,在报表上显示 "无数据可用 "的消息。

  • VBA在报表详情部分的OnFormat事件中动态隐藏标签控件,例如。Me.lblND.Visible = Not Me.HasData (请注意,该事件仅在PrintPreview或直接打印时触发)
  • 或文本框中的表达式。=IIf([HasData], " ", "No data available") 而且不需要VBA。

3) UNION一个0值的虚拟记录--如果报表有数据,可能会抑制该记录的显示--我从来没有试过。

以上是关于在MS Access中,当查询结果为空时,是否有一个简单的方法来显示0.00美元的金额?的主要内容,如果未能解决你的问题,请参考以下文章

结果为空时LINQ返回啥

JPA:仅当结果集不为空时才缓存查询

当结果不为空时,num_rows() 未返回正确的行数

仅当查询不为空时,才从查询写入 BigQuery 中的表

MS Access 2016 VBA 在组合查询条件中为空

使用linq进行查询,结果为空时,是怎么判断的呢?