No.008
クエリで空白(でない)データを抽出したい、Accessの空白について
2003/2007/2010/2013/2016
このお問い合わせは、単一条件の抽出ですので、それほど難しい話ではありません。
ところが、何度もいただく内容なのです。
それは、Accessの空白については理解が必要であるからです。
Excelで空白というと「""」の空白だけですが、Accessで空白というと、空っぽの空白「Null値」と「長さ0の文字列」の空白("")の2つがあります。
「空白である」抽出の書き方は、空っぽの空白の場合「null」と記入し確定すると「Is Null」と表示されます。また、「Not Like "*"」でもNull値の抽出となります。
長さ0の文字列の場合は、「""」です。
一方「空白でない」抽出の書き方について、空っぽの空白でない場合「not null」または「<>null」と記入し確定すると「Is Not Null」と表示され、Null値以外の抽出となります。
長さ0の文字列の場合は、「not ""」または「<>""」です。
よく大規模なデータベースで、クエリがたくさんある中での空白の抽出を行う場合に、どちらの空白かがはっきりしない場合があります。
とりあえず「null」の方でやってみる、だめなら「""」でやってみる、ということでいいと思います。
また、以前にお問い合わせで、「null」で抽出しても「""」で抽出しても件数が合わない、といただいたことがあります。
結果的に、その抽出をしているフィールドにはNull値と長さ0の文字列の両方が入っていました。
したがって、抽出条件には「Is Null Or ""」と設定してようやく数が合ったということがありました。
データによって、さまざまなケースがあります。
どちらの、または両方の空白がデータに入っているのかをよく確認して、操作してください。
ヘルプmemo
<Accessの空白について>
Accessの空白がからむ作業については、データができた経緯を確認しながら操作してください。
Accessの空白についてはMicrosoftのヘルプページ「Access の Null 値と、長さ 0 の文字列の違いについて」をよくご確認ください。