• ベストアンサー

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の場合の処理を実行してしまいます。 どこを修正すれば宜しいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#79209
noname#79209
回答No.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)
回答No.2

判定の条件を変えてみては? If rs.Fields("HHH").Value = "1" Then ("1"の場合の処理) ElseIf rs.Fields("HHH").Value = "9" then '何もしない Else (Nullの場合の処理) End IF

  • akanekor
  • ベストアンサー率52% (102/194)
回答No.1

とりあえず、「結果は全てNULL」の処理に行く理由が、 上記のソースで確認できませんが、 RS.FIELDS("HHH").VALUEの値をログかトレースで、"1","9"が 入る事は確認済みでしょうか? 自分の予想としてはクエリーの方に誤りがあると思っています。 関係ないけど"1"の判定抜けています ELSE IF ("1"の判定) "1"の場合の処理 END IF ' "9" の場合はなにもしない

関連するQ&A