Access-VBA:函数中缺少值的空结果?

时间:2010-08-11 16:52:19

标签: vba access-vba

我有一个问题可能有一个非常简单的答案,但我还没有找到解决方案。 这是一个例子:

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

2 个答案:

答案 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,尽管你必须在函数被调用的任何地方进行