AccessでNULLのデータを判断する方法
ご指導、宜しくお願い致します。
Accessを経由してPostgresのデータベースへ
データをインポートしていきたいのですが、
Accessから抽出したデータが空白か空白ではないのかを
判断させたいのですが、以下のように記述しているのですが、正しく判断されないようです。
どのように記述すればよいのでしょうか???
----------------------------------------
SQL="SELECT 単価,フラグ FROM AAA_TBL"
Set RS = Conn.Execute(SQL)
IF RS(0) = NULL THEN
RESPONSE.WRITE "空白"
ELSE
RESPONSE.WRITE "単価"
END IF
IF RS(1) = NULL THEN
RESPONSE.WRITE "空白"
ELSE
RESPONSE.WRITE "フラグ"
END IF
----------------------------------------
Accessdb:AAA_TBL
フィールド名/データ型
単価/INT4
フラグ/varchar
回答(4件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
こんばんは。
席をはずしておりました。
>NULLと「ゼロバイトの空白文字列」はどのように使い分けるものなのですか?
=====
使い分け、という観点ではないかもしれませんが、
Null=レコードが作られてからまだ一回もデータが入っていない。
""=何かデータが入ったことはあるが、削除された。
という違いがあります。
私の知ってる限り、MSSQLやORACLEにはこの概念(空白文字)はありません。
プログラムが煩雑になるだけであまり使い分けメリットは思い浮かびません…。
(強いて言うなら入力用テンポラリーのテーブルで、入力があったのかどうかの判別とか???)
>また、SELECTでデータを抽出した場合に、データがNULLなのか空白文字列なのかを判断する方法はあるのでしょうか?
=====
No3の方がされているように、やるしかないですねぇ。
せいぜい、1つのIF文にまとめるぐらいですか。。。
■パターン1
IF IsNull(RS(1)) = True or RS(1)="" Then
strDate="Nullか空白"
ELSE
strDate=RS(1)
END IF
■パターン2
IF IsNull(RS(1)) = True Then
strDate="Null"
ELSEIF RS(1)="" Then
strDate="空白"
ELSE
strDate=RS(1)
END IF
この回答へのお礼
puzou様
回答ありがとうございました。
特別、データを扱う上で注意しなければいけないわけではなさそうですね。
参考になりました。今後とも宜しくお願い致します。
こんにちわ。
>SELECTでデータを抽出した場合に、データがNULLなのか空白文字列なのかを判断する方法はあるのでしょうか?
この方法は、
IF IsNull(RS(1)) = True THEN
strDate="Nullです"
ELSE
IF RS(1) = "" THEN
strDate="空白文字列です"
ELSE
strDate=RS(1)
END IF
END IF
とするしかないかもです。
この回答へのお礼
guruguru2様
回答ありがとうございました。
参考にさせていただきます。
No.2ベストアンサー10pt
こんにちは。
私もNo1さんが回答されている方法と同じです。
Accessには、Nullのほかに
「ゼロバイトの空白文字列」という概念がありますので
そちらも判定するといいと思います。
(Nullのフィールドに何かを入れて削除した場合はコレになります)
判定の仕方は、
IF RS(0) = "" Then …
です。
この回答へのお礼
puzou様
ありがとうございます。
>「ゼロバイトの空白文字列」という概念がありますので
>そちらも判定するといいと思います。
そうだったんですね。勉強になります。
もう少し教えてください。
NULLと「ゼロバイトの空白文字列」について・・・
NULLと「ゼロバイトの空白文字列」はどのように使い分けるものなのですか?
また、SELECTでデータを抽出した場合に、データがNULLなのか空白文字列なのかを判断する方法はあるのでしょうか?
No.1ベストアンサー20pt
こんにちわ。
Null判定は、IsNull関数を使って行います。
IF IsNull(RS(0)) = TrueTHEN
RESPONSE.WRITE "空白"
ELSE
RESPONSE.WRITE "単価"
END IF
↑こんな感じに。
ヘルプにも載っていますので詳しくは参照してみてください。
この回答へのお礼
guruguru2様
ありがとうございます!!
関数を使ってあげればよかったんですね。
参考になりました。
今後とも宜しくお願い致します。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示