- ベストアンサー
アクセスのフィルタ nullについて。
質問です。 アクセスのテーブルの中で、あるフィールド(フィールド名:管理番号)が空白のものだけ抽出したいのです。フィルターで、管理番号箇所に「Is Null」としたのですが、実際空白になっているデータがうまく抽出されません。 で、「Is Not Null」で抽出するとそれらのデータが抽出されます。 そのデータの認識ではnullになってないようです。 (でも実際空白です。) どうやったらnullで抽出されるでしょうか? ちなみにそのフィールドのデータ型はテキスト型です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >""とnullは違うということでしょうか? そうです、違います。 アクセスのヘルプでは、 >空白値のフィールドについて >情報が未確定である場合と情報が存在しない場合には、どちらもフィールドを空白にしますが、 >Access では、2 種類の空白の値を使ってこれらを区別することができます。 >空白値には、Null 値と長さ 0 の文字列があります。 >たとえば、[得意先] テーブルの [ファクシミリ] フィールドについて、得意先のファックス番号が不明の場合、 >または得意先にファックスがあるかどうかが不明の場合は、フィールドを空白にしておきます。 >このためには、値が不明であることを示す Null 値を入力します。 >後で顧客がファックスを持っていないことがわかった場合は、 >値がないことを明示的に示す長さ 0 の文字列を入力します。 となっています。 つまり、そのフィールドに対して最初は、Nullが入っており、 そのフィールドに対して入力がされて、中をクリアした場合は長さ 0の文字列になります。 目で見てわかりやすい例は、チェックボックスで確認できます。 フォームにチェックボックスをおいて表示してみて下さい。 チェックボックスの中がグレイになっていると思いますが、それがNull値です。 そこにチェックをするとレ印になり(値が入っている状態)、はずすと空白(長さが0の状態)になります。 実施は、チェックボックスの場合、Null、True、Falseで、ちょっと違いますが、3種類の値があります。 これと同じでテキストボックスには、Null、値が入っている状態、長さ0の文字列があります。 なお、空白値(Nullと長さ0)を許可/禁止する、"Required/値要求"プロパティ、 空白文字列(長さ0)を許可/禁止する、"AllowZeroLength/空文字列の許可" プロパティがあります。 これを組み合わせて使います。 ちょっとわかりにくかったら、すみません。 では。
その他の回答 (2)
- losedog
- ベストアンサー率66% (22/33)
Accessのヘルプからの引用ですが。 Null 値は、バリアント型 (Variant) に有効なデータが入っていないことを示す値です。 変数が初期化されていないことを示す Empty 値や、Null 文字列と呼ばれる長さが 0 の文字列 ("") とは異なります。 そんなこと言われたって、見た目では区別つきませんよね(笑)
お礼
いえいえ私が初期的な事が判らないだけですので(笑) ありがとうございます(^^)。
- pompomkuma
- ベストアンサー率46% (120/258)
こんにちは。 Is Null Or "" としてみてはどうでしょうか? ちがったらすいません。 では。
お礼
ありがとうございます。 見事抽出できました。 ちなみにどういう事かわかりますでしょうか? ""とnullは違うということでしょうか? イマイチ良く分からないのですが。 もしお分かりならまたお返事いただければ嬉しいです。
お礼
再度の回答ありがとうございます。 すっごい判りやすかったです!! これが判っただけでも抽出の幅が広がりますし。 確かにチェックボックスを作成した時にあえて、未チェックにした場合と未投入の場合とで0と空白に分かれてました。(←これに対しても不思議に思ってました。)手元にあるアクセスの本は初心者用の為か記載されてなくて・・・・本当にありがとうございますm(_ _)m。