我有一个问题可能有一个非常简单的答案,但我还没有找到解决方案。 这是一个例子:
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
答案 0 :(得分:2)
将功能更改为如下所示。
Public Function abc(var_1 As Variant) As Variant
If IsNumeric(var_1) Then
abc = 2 * var_1
Else
abc = Null
End If
End Function
我不相信你可以像你想要的那样在单个中返回null。
答案 1 :(得分:0)
或者在比函数更高的级别测试null,尽管你必须在函数被调用的任何地方进行