我经常在我的 Access 2010 数据库中使用以下表达式模式:
IIF(ISNULL(fieldName), Null, myFunction(fieldName))
这里的 myFunction 是一个用户定义的函数,它将 fieldName 的值转换为另一种格式,如果它确实存在的话。
只是为了减少打字,我尝试定义以下函数:
Function IifIsNull(p AS Variant, v AS Variant) AS Variant
If IsNull(p) Then IifIsNull = p Else IifIsNull = v
End Function
我应该以下列方式使用它:
IifIsNull(fieldName, myFunction(fieldName))
但它不起作用。当为 Null时fieldName
,返回值为 ,甚至还没有被调用!IifIsNull
#Error
IifIsNull
是否可以使用用户定义的函数或系统函数来简化给定的代码模式?
更新:
有几个myFunction
s,所有这些函数目前都是强类型的,一个简单的例子如下:
Function RemoveSpace(str AS String) AS String
For i=1 to Len(str)
If Mid(str,i,1) <> " " Then RemoveSpace = RemoveSpace + Mid(str,i,1)
Next
End Function