コンボボックスにNULL値を含める値リストとクエリを使う2つの方法 - Access

コンボボックスから選択する場合、該当なしとしてNULL値を入れたい時があります。

ここでは、値リスト(値集合ソース)とクエリを使った2種類の方法を紹介します。
クエリの場合、通常のクエリではできないのでユニオンクエリを作成します。
ユニオンクエリの作成方法は「ユニオンクエリで複数テーブルを結合する|並び替え方法と一致しませんのエラー」を参照してください。

BackHome Backコントロール


値リスト(値集合ソース)を使いコンボボックスにNULL値を含める

通常の値リストを使ったコンボボックス

1)フォーム デザインでコンボボックスを挿入します。
2)プロパティで[値集合タイプ]を「値リスト」にします。
3)[値集合ソース]に「AAA;BBB;CCC」と入力します。
通常の値リストを使ったコンボボックス

実行すると下のように選択できるようになります。
これにNULL値を入れます。
実行結果のフォーム

値集合ソースを「;AAA;BBB;CCC」に変更します。
先頭にセミコロンを入力するだけです。
値集合ソースを「;AAA;BBB;CCC」に変更する

実行すると、リストの先頭は空白が表示されます。
NULLを途中に入れたい場合は、「AAA;;BBB;CCC」とセミコロンの位置を変更するだけです。
リストの先頭は空白が表示される

ユニオンクエリを使いコンボボックスにNULL値を含める

ユニオンクエリの元になる1つ目の商品テーブルです。
ユニオンクエリの元になる1つ目の商品テーブル

ユニオンクエリの元になる2つ目の製品テーブルです。
ユニオンクエリの元になる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_ユニオン」の名前で保存しました。
ユニオンクエリのSQLを入力する

フォームデザインでコンボボックスの[値集合タイプ]を「テーブル/クエリ」に、[値集合ソース]を「Q_ユニオン」にします。
[値集合タイプ]を「テーブル/クエリ」に、[値集合ソース]を「Q_ユニオン」にする

実行すると、2つのテーブルが結合された商品名データの先頭にNULLが挿入されています。
2つのテーブルが結合された商品名データの先頭にNULLが挿入されている


BackHome Backコントロール

Copyright(C) FeedSoft