入力フォームなどで、コンボボックスの絞り込みはよく使いますね。2つのコンボボックスが連結して動作します。
たとえば、1つ目のコンボボックスで[営業部]を選択すると、2つ目のコンボボックスには、営業部の人の名前だけを表示します。
1つ目のコンボボックスで[総務部]を選択すると、2つ目のコンボボックスには、総務部の人の名前だけを表示できるというようなコンボボックスです。
参考Access2013でも解説しています。Access2007以降であれば、以下の記事のほうが分かりやすいと思います。
1つのテーブルから2つのクエリを作成し、コンボボックスの[値集合ソース]にクエリを指定してレコードを抽出します。
-
2つのコンボボックスに重複しないデータを表示してレコードを抽出
Accessでコンボボックスを使用してレコードを抽出する方法はいくつかありますが、テーブル内の重複しないデータをコンボボックスに表示して作成 ...
テーブルの確認
絞込みコンボボックスの作り方です。
テーブル1は、以下のように作成しています。
1つ目のコンボボックスの作成
フォームをデザインビューで開いて、ツールボックスのコンボボックスを使って1つ目のコンボボックスを作ります。
[コントロールウィザード]をオンにして、ウイザードから作ってもいいですけど、ウィザードは使わなくもいいと思います。
ここでは、オフにしています。
コンボボックスのプロパティを開きます。
[値集合ソース]に[テーブル1]を指定します。
[列幅]、[連結列]なども下の画像を参考にしてください。
プロパティで列幅を[0;3]と入力すると、自動的に下の画像のように[0cm;3cm]となります。
このように設定すると、コンボボックスには2列目だけが表示されるようになります。
コンボボックスの名前は、[コンボ0]です。
これで1つ目のコンボボックスができたはずです。
フォームビューに切り替えて確かめてみるといいですね。
2つ目のコンボボックスの作成
2つ目のコンボボックスを上記と同じように作成します。
ユニオンクエリで2つのテーブルのレコードを結合で作成したユニオンクエリ[クエリ1]を使います。
2つ目のコンボボックス[コンボ2]の[値集合ソース]のビルドボタン[…]をクリックします。
[テーブルの表示]から[クエリ1]を選択してダブルクリックします。
クエリの[所属]フィールドの[抽出条件]に下のように記述します。
半角の角括弧は自動的に表示されます。
フィールド[担当]の並べ替えで[昇順]を選択しておくと、便利だと思います。
クエリビルダを閉じます。
[SQL ステートメントの変更を保存し、プロパティの設定を更新しますか?]のメッセージが表示されたら[はい]をクリックします。
プロパティで[列幅]なども入力します。
[列幅]には[3cm;0cm]と入力して、[担当]を表示して[所属]を非表示にします。
参考ユニオンクエリについては、以下の記事でも解説しています。
-
ユニオンクエリ(複数のテーブルを結合)をコピーと貼付で簡単作成
Accessには、複数のテーブルやクエリのレコードを結び付けて、1つのクエリにする[ユニオンクエリ]という機能があります。 ユニオンクエリは ...
再クエリ
最後に1つ目のコンボボックスで選択し直したら、2つ目のコンボボックスの絞込みをし直すために、1つ目のコンボボックスで再クエリをします。
[再クエリ]については、再クエリを参照してください。
[コンボ2]のプロパティを表示したまま、上部の▼をクリックして、[コンボ0]を選択して切り替えます。
[コンボ0]の[イベント]タブから[更新後処理]のビルドボタン[…]をクリックします。
[ビルダの選択]から[コードビルダ]を選択して[OK]ボタンをクリックします。
赤線の部分を入力します。
Me!コンボ2.Requery
VBEウィンドウを閉じます。
[イベント]タブの[更新後処理]には、以下のように[イベントプロシージャ]と表示されていると思います。
これでできるはずです♪
ビューを切り替えて、確かめてみてくださいね。
絞込みを作成する場合、よく躓くのが[連結列]プロパティなんですね。私もひっかかりました。(^^ゞ
連結列で解説しています。
関連Excelでは入力規則と関数を使って、リストの中から1つ選択すると、次のリストは前のリストに該当する内容の中からしか選択できないようにすることができます。
-
ドロップダウンリストを2段階選択で絞り込むには(データの入力規則)
Excelでは入力規則と関数を使って、リストの中から1つ選択すると、次のリストは前のリストに該当する内容の中からしか選択できないようにするこ ...
参考検索用のコンボボックスは、ウィザードを使って簡単に作成できます。
-
コンボボックス作成ウィザードを使って検索用コンボボックスを簡単作成
Accessのフォームで検索用コンボボックスを作成する方法です。 コンボボックス作成ウィザードを使って簡単に作成することができます。 この記 ...
コンボボックス内にカーソルをおくだけで、リストを表示するようにもできます。
-
コンボボックス内にカーソルが移動すると自動でリストを表示するには
Accessの入力フォームでコンボボックスを使うことは多いと思います。 コンボボックスって、▼ボタンを押してリストを表示しますが、コンボボッ ...
以下は、コンボボックスに関する主な記事です。
-
フォームのコンボボックスの値でレコードを抽出
フォームにコンボボックスを作成して、そのリストから選択して一致するレコードを抽出できるようにします。 ウィザードを使い、コンボボックスの値は ...
-
コンボボックスの2列目の値をテキストボックスに自動表示するには
Accessのフォームでコンボボックスの2列目の値を取得する方法です。 コンボボックスの更新後処理の[マクロビルダー]か、[コードビルダー] ...