コンボボックスにNULL値を含める値リストとクエリを使う2つの方法 - Access
コンボボックスから選択する場合、該当なしとしてNULL値を入れたい時があります。
ここでは、値リスト(値集合ソース)とクエリを使った2種類の方法を紹介します。
クエリの場合、通常のクエリではできないのでユニオンクエリを作成します。
ユニオンクエリの作成方法は「ユニオンクエリで複数テーブルを結合する|並び替え方法と一致しませんのエラー」を参照してください。
値リスト(値集合ソース)を使いコンボボックスにNULL値を含める
通常の値リストを使ったコンボボックス
1)フォーム デザインでコンボボックスを挿入します。
2)プロパティで[値集合タイプ]を「値リスト」にします。
3)[値集合ソース]に「AAA;BBB;CCC」と入力します。
実行すると下のように選択できるようになります。
これにNULL値を入れます。
値集合ソースを「;AAA;BBB;CCC」に変更します。
先頭にセミコロンを入力するだけです。
実行すると、リストの先頭は空白が表示されます。
NULLを途中に入れたい場合は、「AAA;;BBB;CCC」とセミコロンの位置を変更するだけです。
ユニオンクエリを使いコンボボックスにNULL値を含める
ユニオンクエリの元になる1つ目の商品テーブルです。
ユニオンクエリの元になる2つ目の製品テーブルです。
ユニオンクエリのSQLを入力します。
作成手順は上のリンクを参照してください。
SELECT 商品区分,商品コード FROM T_商品
UNION SELECT "","<N/A>" FROM T_製品
ORDER BY 商品コード;
「UNION SELECT "","<N/A>" FROM T_製品」でテーブルのデータにない、「"","<N/A>"」を追加しています。
<N/A>を使いコンボボックスの先頭にNULLがくるようにしています。
「Q_ユニオン」の名前で保存しました。
フォームデザインでコンボボックスの[値集合タイプ]を「テーブル/クエリ」に、[値集合ソース]を「Q_ユニオン」にします。
実行すると、2つのテーブルが結合された商品名データの先頭にNULLが挿入されています。