DLookup函数中的#Error

时间:2017-11-06 18:08:42

标签: vba ms-access access-vba

我在MS Access中使用一个函数来返回带有DLookup的Query字段值。该函数将值从查询中的现有字段传递给strPersonType

当该字段中存在值时,该函数正常工作,但是当没有值存在时,它返回#Error。在这种情况下,我希望它返回Null或空白值。

我已尝试过错误处理和If语句(如下所示),到目前为止我无法修复它。

无论我尝试什么,字段值都会显示为#Error

Function LookUpPersonType2(strPersonType As String)            
    'Used to look up Person Type2 in the "Person Type Key" table given PERSON_TYPE
    'Returns original supplied name if no variation


    If IsNull(strPersonType) Or strPersonType = "" Then
        LookUpPersonType2 = ""
    Else

        If IsNull(DLookup("[Person Type2]", "[Person Type Key]", "[PERSON_TYPE] ='" & strPersonType & "'")) Then
            LookUpPersonType2 = strPersonType
        Else
            LookUpPersonType2 = DLookup("[Person Type2]", "[Person Type Key]", "[PERSON_TYPE] ='" & strPersonType & "'")
        End If
    End If
    Debug.Print LookUpPersonType2 & ","
End Function

1 个答案:

答案 0 :(得分:1)

我意识到我需要将传递的参数更改为Variant变量类型,因为该值可能为NULL。最初它是字符串变量类型,字符串不能为NULL。谢谢!