オプションボタンでサブフォームのソースオブジェクトを変更する方法です。
下のようなオプショングループを設置して、サブフォームを組み込んだフォームを作成しています。
オプションボタンで[世田谷区]を選択すると、世田谷区のみのデータが抽出され、[墨田区]を選択すると、墨田区のデータが抽出されるようにします。
参考ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。従来からAccessを使用している方に ...
選択クエリの作成
まず、[受注]テーブルをもとにクエリを作成します。
クエリのデザインビューで[受注]テーブルをを表示して、デザイングリッドに、[受注ID]フィールドと[出荷先市区町村]フィールドを追加します。
[出荷先市区町村]フィールドの抽出条件に[世田谷区]と入力して、クエリは[Q_世田谷区]という名前を付けて保存します。
同じようにクエリ[Q_墨田区]も作成します。
受注サブフォームの作成
[受注サブフォーム]は、[受注]テーブルをもとに以下のように作成します。
フィールドは、[受注ID]と[出荷先市区町村]のみです。
フォームの既定のビューは、[データシート]です。
フォームビューに切り替えると、以下のように表示されます。
フォーム[F_抽出]に[受注サブフォーム]を組み込む
オプションボタンはコントロールのオプショングループから作成済みです。
オプショングループの作成については、以下の記事を参照してください。
-
オプショングループの作成と選択したデータの保存
Access2010でオプショングループを作成して、その選択データをテーブルに保存する方法です。 画像はAccess2010ですが、ほかのバ ...
フレームの名前は、ここでは[フレーム18]です。
[デザイン]タブの[コントロール]から[サブフォーム/サブレポート]ボタンをクリックします。
コントロールウィザードを使用して作成します。
フォーム[F_抽出]の[詳細]領域にドラッグして、サブフォームを組み込む位置を指定します。
[既存のフォームを使用する]を選択すると、作成済みのフォームの一覧が表示されます。
[受注サブフォーム]を選択して[次へ]ボタンをクリックします。
サブフォームの名前を付けて、[完了]ボタンをクリックします。
ここでは、そのまま[受注サブフォーム]とします。
フォームのフレームの更新後処理に入力
フォーム[F_抽出]の[フレーム18]を選択して、プロパティを表示します。
[イベント]タブの[更新後処理]の[…]ボタンをクリックします。
参考プロパティは、[F4]キーを押すと表示できます。
[ビルダーの選択]ダイアログボックスが表示されますので、[コードビルダー]を選択して[OK]ボタンをクリックします。
フレームの更新後処理イベントに下のように入力します。
Select Case Me.フレーム18
Case 1
Me.受注サブフォーム.SourceObject = "クエリ.Q_世田谷区"
Case 2
Me.受注サブフォーム.SourceObject = "クエリ.Q_墨田区"
End Select
[フレーム18]のプロパティの更新後処理は、[イベントプロシージャ]と表示されます。
[世田谷区]を選択すると、左のように[出荷先市区町村]で世田谷のデータのみ、[墨田区]を選択すると、墨田区のデータのみが表示されるようになります。
参考以下の記事では、オプションボタンの選択によって、レポートのレコードソースを切り替える方法を解説しています。
-
フォームのオプションボタンでレポートのレコードソースを切り替え
1つのテーブルから、クエリを作成してデータを抽出することはよくあります。 そのクエリをもとにレポートを作成するとき、レポートのレコードソース ...
サブフォームの作成方法は、以下の記事でも解説しています。
-
サブフォームウィザードを使ってメインフォームへサブフォームを組み込む
メインフォームにサブフォームを組み込んで、サブフォームを含むフォームを作成できます。 コントロールの[サブフォーム/サブレポート]ボタンを使 ...