【发布时间】:2020-07-14 05:17:50
【问题描述】:
我有一个问题可能有一个非常简单的答案,但我还没有找到解决方案。 这是一个例子:
Public Function abc(var_1 As Variant) As Single
abc = 2 * var_1
End Function
我想在 Access 查询中调用该函数。 'var_1' 的值来自数字(单个)数据字段。 问题: var_1 的某些值是空的/缺失。对于这些值,我也需要函数的结果为空,但现在它们是“0”。
我已经尝试了很多东西,但没有任何效果。空值的结果始终为 '0' 而不是空的。这是一个尝试:
If IsNull(var_1) Then
abc = Empty
Exit Function
End If
没用。
对于这个问题的任何帮助将不胜感激。 :)
编辑:
感谢您的回答。我之前尝试过返回一个变体,但它确实返回了空字段。但是,计算字段需要表现得像数字而不是文本,所以这个解决方案对我不起作用。 我最终使用了 Beth 的答案,尽管这比我想要的要多。 ;) 在 SQL 中调用函数:
IIF(IsNull(X)=False;abc(X))
VBA 中的 abc:
Public Function abc(var_1 As Single) As Single
abc = 2 * var_1
End Function
【问题讨论】:
-
您从函数返回
Single,而不是Variant。除非您返回Variant,否则您不会获得Empty值。 -
值得注意的是empty null。通常在数据库设置中,您会使用 Null 而不是 Empty。