나는 자주 내 액세스 2010 데이터베이스에 다음과 같은 표현 패턴을 사용IIF 및 ISNULL 호출을 Access 2010 VBA에서 캡슐화하는 방법은 무엇입니까?
여기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))
그러나 그렇지 않습니다 작업. fieldName
이 Null 인 경우 IifIsNull
의 반환 값은 #Error
이고 IifIsNull
도 호출되지 않았습니다.
사용자 정의 함수 또는 시스템 함수로 주어진 코드 패턴을 단순화 할 수 있습니까?
는UPDATE :
이 myFunction
의 몇 있는데, 그 모든 기능은 강력하게 입력되어, 간단한 예는 다음
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
당신은 '# 오류'의 이유를 나타내며 내 질문은 그 이유에 대한 것이 아니라 해결책입니다. –
나는 현명한 사람이 한 번 말한 것처럼 생각한다 : 이유를 이해하고 해결책을 찾는다. 아니면 행운의 쿠키였습니까? 어쨌든, 이해가됩니다. 그렇지 않습니다. –