MDB内の検索を行いたいのですが思うように動作させることができません。
(1)検索画面のCheckBoxをCheckした場合にMDBのCHECK1に何かデータが登録されているレコードの検索を行う
strSQL = "CHECK1 LIKE " & "'" & "%" & "'"
とすることで動作しました。
(MDBの日付/時刻型のレコードに0:00:00と登録されているデータも検索対象となりますが・・)
(2)検索画面のCheckBoxをCheckした場合にMDBに何もデータが登録されていないレコードの検索を行う
この動作が機能していません。
strSQL = "CHECK2 = " & "'" & "" & "'"
strSQL = "CHECK2 = " & "'" & blank & "'"
など試しているのですが思うように動作させることができません。
CheckBoxで検索させたい項目は複数あり、MDBのデータ型もテキスト・日付・数値など様々です。
宜しくお願い致します
WinXP VB6(SP5)
strSQL = "CHECK2 Is Null"
ではだめですか?
KGさん
上手くできました!! 助かりました。ありがとうございます。
もう1点関連した問題になると思うのですが、
検索結果とMDBをエクスポートしたファイルで確認を行うと一部食い違いが存在しました。
MDB上で確認しても空欄ですが検索結果的にはデータありと判断されています。
食い違うデータを調べたところ、登録テストで再登録や新規に登録を行ったデータに対して
見た目上は空欄ですがデータありと判断されているようです。
登録時に空欄は""としてを書き込んでいます。見た目空欄をデータありと判断される場合は
何を疑えばよろしいでしょうか?
宜しくお願い致します
>何を疑えばよろしいでしょうか?
nullと""は別の値なので、分けて考えましょう。
>登録時に空欄は""としてを書き込んでいます。
それが原因でしょ?NULLで書き込んでないからです。
データベースを扱う上で、NULLを理解していないのはまずいですよ。
[NULL]とは
http://e-words.jp/w/Null.html
[3値論理とNULL]
http://codezine.jp/a/article/aid/532.aspx
IT用語辞典の解説だと混乱するかな。。。
データベースにおいてはNULLと""は全く違う意味を持つということです。
[Null値についての考察_テーブル設計:AccessTips059]
http://www.accessclub.jp/actips/tips_59.htm
> しかし、データ収集には 空白 を必要とする場合が必ずあります。
例えば温度計で計った温度を登録する場合を考えてください。
温度計が壊れていて測定できなかった場合はどう表現しましょう?
0では無いですよね?0だと0℃の意味を持ってしまいます。
データが存在しない、空っぽの状態がNULLです。
>登録時に空欄は""としてを書き込んでいます。
これを基準とするなら、新規レコードの追加で、データが空っぽの状態(NULL)
なら""にする。という処理を入れてやる必要があります。
空欄として""を使うか、NULLを使うか、ルールを先に決める必要があります。
ととさん
特攻隊長まるるうさん
ご丁寧に説明ありがとうございます。助かりました。
教えていただいたURLも参照して勉強したいと思います。
登録時は入力欄のText情報をそのまま登録しているため、空欄は""扱いになっていました。
元々存在するMDBを利用することになると思いますので規定値を確認して統一したいと思います。
ありがとうございました。
ツイート | ![]() |