2017-11-06 12 views
1

MS AccessでDLookupでクエリフィールドの値を返す関数を使用しています。この関数は、クエリの既存のフィールドから値をstrPersonTypeに渡します。DLookup関数のエラー#

このフィールドに値が存在する場合は正常に機能しますが、値が存在しない場合は#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 
+0

あなたは 'NZ'関数を試しましたか? 'LookUpPersonType2 = NZ(DLOOKUP(...)、NULL)'のように –

+0

ちょっとダーレン、試してみました。まだ#エラーの問題が発生しています – Chuck0185

答えて

1

渡されたパラメータをVariant変数型に変更する必要があることがわかりました。値がNULLになる可能性があるからです。当初は文字列変数型であり、文字列はNULLにすることはできません。ありがとう!