Windows 7 & Office 2010 Access 2010

オプションボタンでサブフォームに表示するデータを切り替えるには

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

オプションボタンでサブフォームのソースオブジェクトを変更する方法です。

下のようなオプショングループを設置して、サブフォームを組み込んだフォームを作成しています。

オプションボタンで[世田谷区]を選択すると、世田谷区のみのデータが抽出され、[墨田区]を選択すると、墨田区のデータが抽出されるようにします。

オプショングループを設置したフォーム

参考ここでは[ドキュメントウィンドウオプション]で[ウィンドウを重ねて表示する]を選択しています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...

続きを見る

選択クエリの作成

まず、[受注]テーブルをもとにクエリを作成します。

クエリのデザインビューで[受注]テーブルをを表示して、デザイングリッドに、[受注ID]フィールドと[出荷先市区町村]フィールドを追加します。

[出荷先市区町村]フィールドの抽出条件に[世田谷区]と入力して、クエリは[Q_世田谷区]という名前を付けて保存します。

同じようにクエリ[Q_墨田区]も作成します。

選択クエリの抽出条件

受注サブフォームの作成

[受注サブフォーム]は、[受注]テーブルをもとに以下のように作成します。

フィールドは、[受注ID]と[出荷先市区町村]のみです。

フォームの既定のビューは、[データシート]です。

受注サブフォームのデザインビュー

フォームビューに切り替えると、以下のように表示されます。

受注サブフォームのフォームビュー

フォーム[F_抽出]に[受注サブフォーム]を組み込む

オプションボタンはコントロールのオプショングループから作成済みです。

オプショングループの作成については、以下の記事を参照してください。

オプショングループの作成と選択したデータの保存

Access2010でオプショングループを作成して、その選択データをテーブルに保存する方法です。 画像はAccess2010ですが、ほかのバ ...

続きを見る

フレームの名前は、ここでは[フレーム18]です。

フォーム[F_抽出]のオプショングループ

[デザイン]タブの[コントロール]から[サブフォーム/サブレポート]ボタンをクリックします。

コントロールウィザードを使用して作成します。

[デザイン]タブの[コントロール]の[サブフォーム/サブレポート]ボタン

フォーム[F_抽出]の[詳細]領域にドラッグして、サブフォームを組み込む位置を指定します。

[既存のフォームを使用する]を選択すると、作成済みのフォームの一覧が表示されます。

[受注サブフォーム]を選択して[次へ]ボタンをクリックします。

サブフォームウィザードで既存のフォームを選択

サブフォームの名前を付けて、[完了]ボタンをクリックします。

ここでは、そのまま[受注サブフォーム]とします。

サブフォームウィザードで名前を付けて完了

フレームの更新後処理で設定

フォーム[F_抽出]の[フレーム18]を選択して、プロパティを表示します。

[イベント]タブの[更新後処理]の[ビルダー選択]ボタン[…]をクリックします。

[ビルダーの選択]ダイアログボックスが表示されますが、[コードビルダー]か[マクロビルダー]のどちらで設定します。

やりやすいほうで設定してかまいません。

参考プロパティは、キーボードから[F4]キーを押すと表示できます。

フレームの[イベント]タブの[更新後処理]の[…]ボタンをクリック

オプションボタンの[オプション値]は、[世田谷]が[1]と[墨田区]が[2]になっています。

オプションボタンの[オプション値]

コードビルダーで設定

[ビルダーの選択]ダイアログボックスが表示されますので、[コードビルダー]を選択して[OK]ボタンをクリックします。

マクロビルダーでも設定できます。

[ビルダーの選択]ダイアログボックス

フレームの更新後処理イベントに下のように入力します。

[Me.]は省いてかまいません。

Select Case Me.フレーム18

Case 1
     受注サブフォーム.SourceObject = "クエリ.Q_世田谷区"
Case 2
    受注サブフォーム.SourceObject = "クエリ.Q_墨田区"

End Select

コードビルダー

[フレーム18]のプロパティの更新後処理は、[イベントプロシージャ]と表示されます。

[フレーム18]のプロパティの更新後処理

マクロビルダーで設定

更新後処理イベントで[ビルダーの選択]ダイアログボックスが選択されたら、[マクロビルダー]を選択します。

[ビルダーの選択]ダイアログボックスで[マクロビルダー]を選択

[新しいアクションの追加]の▼ボタンをクリックして、[If]を選択します。

[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。

[新しいアクションの追加]で[If]を選択

[If]の条件式に以下を入力します。

[フレーム18]=1

Ifの条件式を入力

そして、[デザイン]タブの[表示/非表示]グループにある[すべてのアクションを表示]ボタンをクリックします。

[新しいアクションの追加]の▼ボタンをクリックします。

[デザイン]タブの[すべてのアクションを表示]ボタン

一番下までスクロールします。アクションの一覧から[値の代入]を選択します。

アクションの一覧から[値の代入]を選択

[値の代入]の[アイテム]に以下を入力します。

[受注サブフォーム].[SourceObject]

[値の代入]の[式]に以下を入力します。ダブルクォーテーションで囲むのを忘れないようにしてください。

"クエリ.Q_世田谷区"

そして、[Elseの追加]をクリックします。

マクロアクションの[Elseの追加]

[値の代入]の[アイテム]には、以下のように入力します。

[受注サブフォーム].[SourceObject]

[値の代入]の[式]には、以下のように入力します。

"クエリ.Q_墨田区"

以下のようになります。

[Else]を使用したマクロアクション

上書き保存して、閉じます。

マクロツールの[上書き保存]と[閉じる]ボタン

[更新後処理]のプロパティには、[埋め込みマクロ]と表示されます。

設定後の[更新後処理]のプロパティ

参考[Else Ifの追加]を選択すると複数の条件を追加できます。

If文の後の[Else Ifの追加]

フォームビューに切り替えて動作を確認

デザインビューからフォームビューに切り替えて、動作を確認します。

デアインビューからフォームビューに切り替えるには、キーボードから[F5]キーを使用すると便利です。

キーボード[F5]キー

[世田谷区]を選択すると、左のように[出荷先市区町村]で世田谷のデータのみ、[墨田区]を選択すると、墨田区のデータのみが表示されるようになります。

フォームでオプションボタン[世田谷区]を選択した結果

フォームでオプションボタン[墨田区]を選択した結果

参考以下の記事では、オプションボタンの選択によって、レポートのレコードソースを切り替える方法を解説しています。

フォームのオプションボタンでレポートのレコードソースを切り替え

1つのテーブルから、クエリを作成してデータを抽出することはよくあります。 そのクエリをもとにレポートを作成するとき、レポートのレコードソース ...

続きを見る

サブフォームの作成方法は、以下の記事でも解説しています。

サブフォームウィザードを使ってメインフォームへサブフォームを組み込む

メインフォームにサブフォームを組み込んで、サブフォームを含むフォームを作成できます。 コントロールの[サブフォーム/サブレポート]ボタンを使 ...

続きを見る

検索

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

Access / Excel / PowerPoint / Word

関連記事30件

Profile

-Windows 7 & Office 2010 Access 2010

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

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