这一直困扰着我一段时间,我似乎无法找到解决办法;我目前在表单(txt1)上有一个文本框,此文本框的控件源是一个Sum()函数,链接到另一个表单上的另一个文本框(txt2)。 Txt1总计正确的值,直到有一个查询运行,其中txt2所在的表单上没有结果;在这种情况下,因为没有txt1的记录来运行= Sum()函数,它只返回#Error;因为txt1本身然后涉及Sum函数(其结果存储在txt3中),txt3返回值#type,因为txt1是#Error。我想知道的是,如果没有通过Sum()函数传递给它的参数,有一种方法可以让txt1简单地显示“£0.00”。
感谢。
答案 0 :(得分:0)
有一种解决方法:
Function HasRecords(ByVal xobj As Object) As Boolean
'
On Error GoTo ErrorState
'
HasRecords = (xobj.RecordsetClone.RecordCount > 0)
'
Exit Function
'
ErrorState:
HasRecords = False
End Function
Me.Controls("txt2").ControlSource = "=IIF(HasRecords(Form), SUM(Quantity), 0)"
因此,如果没有记录,则txt2的值为0,如果有记录,则为0。
由于txt1和txt3取决于txt2的值,因此不会发生错误。