Office 2019 Access 2019

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

投稿日:2020年6月7日 更新日:

1つのテーブルから、クエリを作成してデータを抽出することはよくあります。

そのクエリをもとにレポートを作成するとき、レポートのレコードソースでテーブルやクエリを指定します。

複数のクエリを作成してレポートを作成する場合、レポートのレイアウトがまったく同じであれば、フォームで表示したい内容(クエリ)を指定してレポートのレコードソースを切り替えることができます。

オブジェクトを増やしたくないというときは、おすすめです。

また、ここでは、クエリをもとにしたレポートで解説していますが、フォームの場合も同じように設定できます。

オプションボタンでレポートの内容を選択

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

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

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

続きを見る

テーブルの確認

サンプルとして以下のようなテーブルを使います。

社員情報として、勤務先が東京都と大阪府で分けて印刷したいとします。

テーブルのデータシートビュー

クエリの作成

テーブル[T_社員]をもとに、クエリ[Q_東京]を作成します。

以下は、[勤務先]が[東京都]のレコードを抽出するクエリのデザインビューです。

[抽出条件]に[東京都]を指定しています。

テーブルの[趣味]フィールドは不要なので、追加していません。

クエリのデザインビューで抽出条件を設定

同じように大阪のクエリ[Q_ 大阪]を作成します。

クエリのデザインビューで抽出条件を設定

すべてのレコードも印刷できるように、クエリ[Q_全社員]も作成します。

[趣味]フィールドのみ追加していません。

クエリのデザインビュー

レポートの作成

クエリをもとにレポートを作成します。

クエリ[Q_全社員]を選択して、[作成]タブの[レポート]グループにある[レポート]クリックして作成します。

ほかの方法でも構いません。ウィザードを使用して作成する方法は、以下の記事で解説しています。

レポートウィザードを使って表形式のレポートを作成

Accessのテーブルやクエリを基にレポートウィザードを使用してレポートを作成することができます。 ウィザードで作成した後、より見やすいレポ ...

続きを見る

[作成]タブの[レポート]グループにある[レポート]

レイアウトビューのまま、コントロールの幅などを調整して、レポートの[標題]などは、プロパティで変更します。

[デザイン]タブの[ツール]グループにある[プロパティシート]をクリックします。

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

選択の種類が[レポート]になっていることを確認して[書式]タブの[標題]で変更します。

レポートのプロパティで標題を変更

[R_社員]という名前を付けて保存します。

レポートに名前を付けて保存

レポートのレコードソース

レポート[R_社員]をデザインビューで開いて、レポートのプロパティを表示します。

[データ]タブの[レコードソース]を確認すると、[Q_全社員]になっていると思います。

[データ]タブの[レコードソース]でレポートのレコードソースを確認

このプロパティの[レコードソース]を変更することで、レポートの内容を変更できるわけです。

[レコードソース]の▼ボタンをクリックすると、作成済みのテーブルやクエリの情報が表示されると思います。

レポートのレイアウトが同じであれば、このレコードソースを切り替えるだけで、表示する内容を変更できます。

レコードソースの変更

ここでは、そのレポートのレコードソースの内容をフォームから指定しようとするものです。

フォームにオプショングループを作成

ここでは、[作成]タブの[フォーム]グループにある[空白のフォーム]をクリックして、空白のフォームを作成します。

[作成]タブの[フォーム]グループにある[空白のフォーム]

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

オプショングループの作成

[空白のフォーム]のボタンをクリックすると、レイアウトビューで表示されます。

フォームをデザインビューに切り替えて、[デザイン]タブの[コントロール]グループにある[オプショングループ]のボタンをクリックします。

この時、[コントロールウィザードの使用]がオンになっていることを確認します。

[デザイン]タブの[コントロール]グループにある[オプショングループ]のボタン

注意もし、[オプショングループ]が見つからない場合は、[レイアウトビュー]になっていると思います。

レイアウトビューのコントロール

[デザイン]タブの[表示]グループにある[表示]ボタンから[デザインビュー]を選択してください。

ステータスバーの右下のボタンでも切り替えができます。

デザインビューに切り替え

オプショングループウィザード

ドラッグすると、[オプショングループウィザード]が表示されます。

[オプショングループウィザード]の表示

ラベル名に、表示したい名前を入力していきます。

ここでは、[東京都][大阪府][すべて]と入力します。[次へ]のボタンをクリックします。

ラベル名の入力

既定のオプションを指定するか、しないかの設定になります。既定値とは、フォームを開いた時に選択されている値のことです。

ここでは、[次のオプションを既定にする]で[すべて]を選択します。

[次へ]をクリックします。

オプショングループの既定値の設定

割り当てられている値を確認して、[次へ]をクリックします。

値の確認

オプショングループに含めるコントロールと、スタイルを選択します。

ここでは、既定のまま[オプションボタン]にします。

変更したい場合は、左側のプレビューで確認しながら選択してください。

トグルボタン(左)とチェックボックス(右)は、以下のような形になります。

トグルボタン(左)とチェックボックス(右)

オプショングループのスタイル選択

フレームの標題を入力します。

ここでは[どの情報が必要ですか?]とします。[完了]ボタンをクリックします。

オプショングループの標題を入力

フォームは、以下のようになっていると思います。

フォームのオプショングループ

フレームを選択して、フレームの名前を確認しておきます。ここでは、[フレーム0]となっています。

変更したい場合は、プロパティの[その他]タブの[名前]で変更してください。

フレームの名前を確認

参考オプションボタンの既定値は、フレームのプロパティで変更できます。

プロパティの[データ]タブにある[既定値]で変更します。

オプショングループウィザードの[次のオプションを既定にする]で[すべて]を選択したので、ここでは既定値は[3]になっていますが、[東京都]に変更したい時は[1]、[大阪府]に変更したい時は[2]にします。

[0]に設定すると、フォームを表示したときにどれも選択していない状態になります。

オプションボタンの既定値の変更

レポートを開くボタンの作成

レポートを開くためのボタンを作成します。

ここでは、ウィザードに沿って作成しますが、他の方法で作成しても構いません。

[デザイン]タブの[コントロール]グループから[ボタン]をクリックします。

[デザイン]タブの[コントロール]グループから[ボタン]

任意の位置でドラッグすると、[コマンドボタンウィザード]が表示されます。

[種類]から[レポートの操作]を選択して、[ボタンの操作]では[レポートのプレビュー]を選択します。

[次へ]をクリックします。

[種類]から[レポートの操作]と[ボタンの操作]では[レポートのプレビュー]を選択

レポートを選択します。

ここでは、1つですが、複数表示された場合は、間違えないように選択してください。

[次へ]をクリックします。

レポートの選択

コマンドボタンに表示する文字列かピクチャを選択します。

[文字列]か[ピクチャ]を選択するようになっていますが、これは完成後にプロパティで変更できます。

文字列もピクチャも両方を表示することもできます。

ここでは、[文字列]を選択して、ボタンに表示したい名前をテキストボックスに入力します。

ここでは[レポートのプレビュー]としています。

[次へ]をクリックします。

ボタンに表示する文字列を入力

ボタン名を入力します。ここでは、[印刷プレビュー]とします。

[完了]ボタンをクリックします。

ボタン名を入力

フォームにボタンが作成できました。

埋め込みマクロの修正

ボタンのプロパティの[イベント]タブを見ると、[クリック時]に[埋め込みマクロ]と表示されていると思います。

このままでもいいのですが、後から編集することを考えて修正します。

[クリック時]の[...]ボタンをクリックします。

ボタンのクリック時イベント

以下のような画面が表示されて、[レポート名]に見慣れない文字が表示されていると思います。

この文字をすべて削除します。

レポート名を削除

削除すると、テキストボックスの右側に▼ボタンが表示されるので、クリックしてプルダウンメニューから[R_社員]を選択します。

この方が分かりやすいですね。

レポート名をプルダウンから選択

[マクロツール]の[閉じる]ボタンをクリックします。

メッセージウィンドウが表示されたら、[はい]をクリックします。

マクロを閉じる

参考このコマンドウィザードで作成した時の[埋め込みマクロ]については、以下の記事で解説しています。

コマンドボタンウィザードによるボタン作成後の[埋め込みマクロ]について

Accessでは、ウィザードを使用して簡単にボタンを作成することができます。 これについては、ウィザードを使ったコマンドボタンの作成で解説し ...

続きを見る

フォームビューに切り替えて、作成したボタンの動作を確認します。

コマンドボタンの動作確認

フォームは、大きさなどを調整して、名前を付けて保存します。ここでは、[F_選択]としています。

ナビゲーションウィンドウ

レポートを開く時のイベントで設定

レポートをデザインビューで開きます。

レポートのプロパティを開いて、[イベント]タブの[開く時]の[ビルダー選択]ボタン[...]をクリックします。

[ビルダーの選択]ダイアログボックスが表示されます。

マクロビルダーか、コードビルダーで設定します。どちらで設定してもかまいません。どちらかで設定します。

レポートの開く時のイベント

[マクロビルダー]と[コードビルダー]の相違点などは以下の記事で解説しています。

マクロアクション(マクロビルダー)とVBA(コードビルダー)

Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...

続きを見る

コードビルダーで設定

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

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

以下のVBEの画面が表示されます。

AcceddのVBE

以下の内容を入力します。

Select Case Forms!F_選択!フレーム0
Case 1
 RecordSource = "Q_東京社員"
Case 2
 RecordSource = "Q_大阪社員"
Case 3
 RecordSource = "Q_全社員"
End Select

以下のようになります。

参考[Me.]は入力しなくても動作しますが、[Me.]と入力すると、入力候補一覧(補助メニュー)が表示されるので、スペルなどのミスは少なくなると思います。

Me.RecordSource = "Q_東京社員"

入力したコード

これで完了です。

レポートを閉じて、フォームを開いて、動作を確認してみてください。

オプションボタンで[東京都]を選択すると、クエリ[Q_東京社員]の情報が表示されます。

オプションボタンで[大阪府]を選択すると、クエリ[Q_大阪社員]の情報が表示されます。

フォームを起動して動作を確認

レポートにラベルで見出しを挿入している場合

もし、レポートヘッダーにラベルを挿入している場合は、ラベルの内容も変更したいですね。

レポートのラベル

その場合は、開く時のイベントプロシージャに追記します。

プロパティを開いて、ラベルの名前を確認します。ここでは、ラベルの名前は[ラベル40]となっています。

ラベルの名前

開く時のイベントプロシージャに、コードを追加します。

Select Case Forms!F_選択!フレーム0
Case 1
  RecordSource = "Q_東京社員"
  ラベル40.Caption = "東京"

Case 2
  RecordSource = "Q_大阪社員"
  ラベル40.Caption = "大阪"

Case 3
 RecordSource = "Q_全社員"

End Select

変更後のコード

マクロビルダーで設定

[ビルダーの選択]ダイアログボックスの[マクロビルダー]を選択して[OK]ボタンをクリックします。

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

[マクロウィンドウ]が表示されます。

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

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

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

[Forms]![F_選択]![フレーム0]=1

[If]の条件式に入力

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

[新しいアクションの追加]の▼ボタンをクリックして、一番下までスクロールして、[値の代入]を選択します。

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

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

[RecordSource]

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

"Q_東京社員"

[Else If の追加]をクリックします。

[値の代入]の[アイテム]と[式]に入力

続けて、同じように[フレーム0]の値によって設定します。

同じようなマクロアクションを追加する場合は、コピー&ペーストすると効率的です。

マクロツールで既存のアクションをコピーして活用(再利用)するには

Accessでは多くのマクロアクションが使用できます。 しかし、毎回アクションを選択して入力するのは面倒ですね。 マクロアクションは、コピー ...

続きを見る

以下のようになれば完成です。

マクロアクションに[Else If]を追加入力して完成

また、ラベルの内容も変更したいのであれば、続けて[値の代入]アクションを追加して入力します。

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

[ラベル40].[Caption]

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

"東京"

レポートのラベル名を変更したい場合のマクロアクション

マクロアクションの設定が終わったら、上書き保存して[マクロウィンドウ]を閉じます。

[マクロウィンドウ]の[上書き保存]と [閉じる]ボタン

レポートのプロパティ[開く時]イベントには、[埋め込みマクロ]と表示されます。

マクロビルダー設定後のプロパティ

参考印刷するレコードがない場合にメッセージを表示するには、レポートの[空データ時]イベントで設定します。

印刷するレコードがない場合はメッセージを表示して印刷を中止する

Accessのレポートで印刷を実行しようとしても、該当するデータがない場合があります。 印刷プレビューで確認すれば、印刷を実行せずに済むかも ...

続きを見る

レポートを最大化で開くには

印刷プレビューを最大化で開くには、レポートの[読み込み時]のイベントで設定します。

レポートの[読み込み時]イベント

[ビルダーの選択]ダイアログボックスの[マクロビルダー]を選択して、[マクロウィンドウ]を開きます。

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

[新しいアクションの追加]で[ウィンドウの最大化]を選択して保存します。

マクロアクション[ウィンドウの最大化]

参考Accessでオプションボタンを作成する方法は、以下の記事でも解説しています。

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

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

続きを見る

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

オプションボタンでサブフォームのソースオブジェクトを変更する方法です。 下のようなオプショングループを設置して、サブフォームを組み込んだフォ ...

続きを見る

また、1つのフォームを作成して、開く時に参照用と編集用に切り替えて表示する方法も解説しています。これも、オブジェクトを増やさず済むので、データベースのサイズを気にするような場合はお勧めです。

フォームを参照用と編集用にボタンで切り替え(埋め込みマクロで設定)

Accessで1つのフォームを作成して、すべての内容を見せてレコードの編集ができるようにしています。 でも、そのフォームを開く時に制限を付け ...

続きを見る

検索

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

Access / Excel / PowerPoint / Word

関連記事30件

moneytizerPCのみ

Profile

執筆者/はま

-Office 2019 Access 2019

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

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