Windows XP & Office 2003 Access 2003

コンボボックスの絞り込み

投稿日:2017年1月7日 更新日:

入力フォームなどで、コンボボックスの絞り込みはよく使いますね。2つのコンボボックスが連結して動作します。

たとえば、1つ目のコンボボックスで[営業部]を選択すると、2つ目のコンボボックスには、営業部の人の名前だけを表示します。

1つ目のコンボボックスで[総務部]を選択すると、2つ目のコンボボックスには、総務部の人の名前だけを表示できるというようなコンボボックスです。

フォームの1つ目のコンボボックス

フォームの2つ目のコンボボックス

参考Access2013でも解説しています。Access2007以降であれば、以下の記事のほうが分かりやすいと思います。

1つのテーブルから2つのクエリを作成し、コンボボックスの[値集合ソース]にクエリを指定してレコードを抽出します。

2つのコンボボックスに重複しないデータを表示してレコードを抽出

Accessでコンボボックスを使用してレコードを抽出する方法はいくつかありますが、テーブル内の重複しないデータをコンボボックスに表示して作成 ...

続きを見る

テーブルの確認

絞込みコンボボックスの作り方です。

テーブル1は、以下のように作成しています。

テーブル1

1つ目のコンボボックスの作成

フォームをデザインビューで開いて、ツールボックスのコンボボックスを使って1つ目のコンボボックスを作ります。

[コントロールウィザード]をオンにして、ウイザードから作ってもいいですけど、ウィザードは使わなくもいいと思います。

ここでは、オフにしています。

ツールボックスのコンボボックス

コンボボックスのプロパティを開きます。

[値集合ソース]に[テーブル1]を指定します。

[列幅]、[連結列]なども下の画像を参考にしてください。

プロパティで列幅を[0;3]と入力すると、自動的に下の画像のように[0cm;3cm]となります。

このように設定すると、コンボボックスには2列目だけが表示されるようになります。

コンボボックスの名前は、[コンボ0]です。

コンボボックスのプロパティ[値集合ソース]

これで1つ目のコンボボックスができたはずです。

フォームビューに切り替えて確かめてみるといいですね。

2つ目のコンボボックスの作成

2つ目のコンボボックスを上記と同じように作成します。

2つのテーブルをくっつけたいで作成したユニオンクエリ[クエリ1]を使います。

ユニオンクエリ

2つ目のコンボボックス[コンボ2]の[値集合ソース]のビルドボタン[…]をクリックします。

コンボボックス[コンボ2]の[値集合ソース]

[テーブルの表示]から[クエリ1]を選択してダブルクリックします。

テーブルの表示で[クエリ1]を選択

クエリの[所属]フィールドの[抽出条件]に下のように記述します。

[forms]![フォーム]![コンボ0]

半角の角括弧は自動的に表示されます。

フィールド[担当]の並べ替えで[昇順]を選択しておくと、便利だと思います。

クエリの[所属]の抽出条件

クエリビルダを閉じます。

[SQL ステートメントの変更を保存し、プロパティの設定を更新しますか?]のメッセージが表示されたら[はい]をクリックします。

プロパティで[列幅]なども入力します。

[列幅]には[3cm;0cm]と入力して、[担当]を表示して[所属]を非表示にします。

コンボボックスのプロパティ[列幅]

参考ユニオンクエリについては、以下の記事でも解説しています。

ユニオンクエリ(複数のテーブルを結合)をコピーと貼付で簡単作成

Accessには、複数のテーブルやクエリのレコードを結び付けて、1つのクエリにする[ユニオンクエリ]という機能があります。 ユニオンクエリは ...

続きを見る

再クエリ

最後に1つ目のコンボボックスで選択し直したら、2つ目のコンボボックスの絞込みをし直すために、1つ目のコンボボックスで再クエリをします。

[再クエリ]については、再クエリを参照してください。

[コンボ2]のプロパティを表示したまま、上部の▼をクリックして、[コンボ0]を選択して切り替えます。

コンボボックス2で[コンボ0]を選択

[コンボ0]の[イベント]タブから[更新後処理]のビルドボタン[…]をクリックします。

[コンボ0]のプロパティ[イベント]タブの[更新後処理]

[ビルダの選択]から[コードビルダ]を選択して[OK]ボタンをクリックします。

赤線の部分を入力します。

Me!コンボ2.Requery

コードビルダ

VBEウィンドウを閉じます。

[イベント]タブの[更新後処理]には、以下のように[イベントプロシージャ]と表示されていると思います。

[コンボ0]のプロパティ[更新後処理]

これでできるはずです♪

ビューを切り替えて、確かめてみてくださいね。

絞込みを作成する場合、よく躓くのが[連結列]プロパティなんですね。私もひっかかりました。(^^ゞ

連結列で解説しています。

関連Excelでは入力規則と関数を使って、リストの中から1つ選択すると、次のリストは前のリストに該当する内容の中からしか選択できないようにすることができます。

絞り込みドロップダウンリストの作成(データの入力規則)

Excelでは入力規則と関数を使って、リストの中から1つ選択すると、次のリストは前のリストに該当する内容の中からしか選択できないようにするこ ...

続きを見る

参考検索用のコンボボックスは、ウィザードを使って簡単に作成できます。

コンボボックス作成ウィザードを使って検索用コンボボックスを簡単作成

Accessのフォームで検索用コンボボックスを作成する方法です。 コンボボックス作成ウィザードを使って簡単に作成することができます。 テーブ ...

続きを見る

コンボボックス内にカーソルをおくだけで、リストを表示するようにもできます。

コンボボックス内にカーソルが移動すると自動でリストを表示するには

Accessの入力フォームでコンボボックスを使うことは多いと思います。 コンボボックスって、▼ボタンを押してリストを表示しますが、コンボボッ ...

続きを見る

以下は、コンボボックスに関する主な記事です。

フォームのコンボボックスの値でレコードを抽出

Accessの分割フォームのデータシートビューには、Excelのフィルターと同じようにフィルターボタンがあり、Excelの操作と同じように様 ...

続きを見る

コンボボックスの2列目の値をテキストボックスに自動表示するには

Accessのフォームでコンボボックスの2列目の値を取得する方法です。 コンボボックスの更新後処理の[マクロビルダー]か、[コードビルダー] ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

Profile

執筆者/はま

-Windows XP & Office 2003 Access 2003

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.