- ベストアンサー
NULLを含むフィールド値の条件分岐
どなたかご存知の方はご教示願います。 使用言語はVB6_SP5、DBはMdb(アクセス97形式)です。 ADOでDBに接続し、レコードセットを取得しそのレコードの任意のフィールドの値により処理を3通りに分けたいのです。(値はNULL、"1"、"9" の3つです。) IF文で条件分岐を行いたいのですが、うまく振り分けができずにおります。 IF ISNULL(RS.FIELDS("HHH").VALUE) THEN NULLの場合の処理 ELSE "1"の場合の処理 END IF ' "9" の場合はなにもしない 結果は全てNULLの場合の処理を実行してしまいます。 どこを修正すれば宜しいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
これでダメですか?(未検証) Dim strDATA As String strDATA = Nz(RS.Fields("HHH").Value,"") Select Case strDATA Case "1" '"1"の場合の処理 Case "9" '"9"の場合の処理 Case "" 'Nullの場合の処理 End Select
その他の回答 (2)
- Kuppycat
- ベストアンサー率50% (109/216)
判定の条件を変えてみては? If rs.Fields("HHH").Value = "1" Then ("1"の場合の処理) ElseIf rs.Fields("HHH").Value = "9" then '何もしない Else (Nullの場合の処理) End IF
- akanekor
- ベストアンサー率52% (102/194)
とりあえず、「結果は全てNULL」の処理に行く理由が、 上記のソースで確認できませんが、 RS.FIELDS("HHH").VALUEの値をログかトレースで、"1","9"が 入る事は確認済みでしょうか? 自分の予想としてはクエリーの方に誤りがあると思っています。 関係ないけど"1"の判定抜けています ELSE IF ("1"の判定) "1"の場合の処理 END IF ' "9" の場合はなにもしない