2007访问if if语句返回文本字符串

时间:2011-01-13 19:27:11

标签: ms-access ms-access-2007 access-vba if-statement

我有一个访问2007报告,如果没有与列出的项目关联的美元金额,其中一个字段会返回$ 0的数值,否则它会返回大于$ 0的美元金额。

我想要做的是构建报告,以便如果字段值= $ 0,我希望它读取“TBD”(不带引号)否则,我希望它返回美元金额。

两部分问题 - 首先,我将在哪个Sub类下编写代码?

而且,我将如何编写if else语句?

这是我到目前为止所做的并且它没有做任何事情(没有错误,只返回带有$ 0打印的报告,其中没有可用的金额)。

Private Sub Cost_AfterUpdate()
If ([YearofExpenditureCost] >= 0) Then
Me.Cost = "TBD"
Else: Me.Cost = [YearofExpenditureCost]
End If

其中[Cost]是包含ControlSource值[YearofExpenditureCost]的文本框的名称。

非常感谢您提出的任何建议。

2 个答案:

答案 0 :(得分:1)

您可以使用立即If作为报表上文本框的控件来源。确保testbox的名称不是recordsource中的任何字段:

=IIF(YearofExpenditureCost=0, "TBD",YearofExpenditureCost)

答案 1 :(得分:1)

表单的format属性有四个部分(来自Access帮助):

  First   The format for positive numbers. 
  Second  The format for negative numbers. 
  Third   The format for zero values. 
  Fourth  The format for Null values. 

因此,如果将format属性设置为;;"TBD";,则应显示值或“TDB”(如果为零) - 此代码不需要代码,只需在报表上设置控件的属性即可。