掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Recordset.Fields()の値のnullをReplaseするには? (ID:85519)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Replace関数の第1引数は、String型ですので、ここにNullを渡すことは出来ません。 Nullの場合に空文字列にしたいのであれば、 案1) If IsNull(値) Then S = "" Else S = CStr(値) End If 案2) S = IIf(IsNull(値), "", CStr(値)) 案3) S = 値 & "" などの手法が使えます。 もしくは、Nullを変換するために、 Public Function Nz(ByVal Value As Variant, Optional ByVal IsNullValue As Variant = Empty) As Variant If IsNull(Value) Then Nz = IsNullValue Else Nz = Value End If End Function のような関数を用意して、 str1 = Nz(値) lng1 = Nz(値) str2 = Nz(値, "(null)") lng2 = Nz(値, -1) などのように書く事もできるかと。 > 確かIf文でnullを比較すると必ずfalseを返す為 いえ、Nullとの比較はFalseではなく、「Null」を返します。 Nullには「不明な値」のような意味があります。 「不明な値との比較結果」はやはり「不明」なため、結果もNullとなるわけですね。 # ちなみに、「True And Null」はNull、「False And Null」はFalse、 # 「True Or Null」はTrue、「False Or Null」はNull ……となりますが、 # これも、Nullが『不明な値』であると分かると、理解しやすいかと。 Nullかどうかの判断には、幾つかの方法がありますが、 基本的には、「IsNull関数」を使う事になるでしょう。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.