新字段中的功能是:kWh: kWhHE([SumOfHourlykWh],[SumOfAverage])
我的VBA代码是:
Public Function kWhHE(dRevkWh As Double, dSCADAkWh As Double) As Double
If dRevkWh = "" Then
kWhHE = dRevkWh
Else
kWhHE = dSCADAkWh
End If
End Function
为什么将#Error放在字段KWh中?
答案 0 :(得分:2)
当您在查询中调用该函数时,如果[SumOfHourlykWh]或[SumOfAverage]为空...
kWhHE([SumOfHourlykWh],[SumOfAverage])
...它将触发错误条件,因为该函数已为其两个参数声明了Double。 Null不是Double类型;和Double变量不能接受Null。
当字段为空时,可以使用Nz
替换另一个值来避免此问题。如果零是两个字段的合理替代......
kWhHE(Nz([SumOfHourlykWh], 0), Nz([SumOfAverage], 0))
或者,您可以将函数的参数数据类型从Double更改为Variant。然后该函数接受Null。但是,您还需要修改函数以正确处理Null并处理函数参数的其他数据类型,如String。