サブレポートを作成して使用する

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

関連するデータが別々のテーブルに格納されているリレーショナル データを操作しているとき、複数のテーブルやクエリの情報を同じレポート上に表示することが必要になる場合がしばしばあります。たとえば、取引先データを確認すると同時に、取引先の受注に関する情報も確認する場合などです。このような場合は、サブレポートを使用すると、取引先情報と共に論理的な読みやすい方法で受注情報をレポートに表示できるため便利です。Microsoft Office Access 2007 には、サブレポートをすばやく作成するのに役立つさまざまな方法が用意されています。

目的に合ったトピックをクリックしてください

サブレポートを理解します。

サブレポートを作成します。

サブレポートにデザイン変更を加える

サブレポートを理解する

サブレポートは、別のレポートに挿入されているレポートです。レポートを結合する場合は、その他のレポートが含まれているメイン レポートとして使用それらのいずれかの必要があります。メイン レポートがバインドされている非連結します。バインドされたレポートとは、データを表示し、表の [レコード ソース] プロパティで指定されたクエリ、または SQL ステートメントが含まことです。非連結レポートは、テーブル、クエリ、または SQL ステートメントに基づかない (つまり、レポートのレコード ソース] プロパティが空)。

ヒント: Access 2010 でレポートにコントロール レイアウトでは、その点を考慮してうえ、お探しの場合があります。

2 つのサブレポートが関連付けられていないある非連結メイン レポートの例   

非連結メイン レポートは、それ自体のデータを表示することはできませんが、関連していないサブレポートを組み合わせるためのメイン レポートとして使用できます。

関連性のないデータを表示する 2 つのサブレポートが含まれるバインドされていないメイン レポート

1. 非連結メイン レポートに 2 つのサブレポートが含まれています。

2. 1 つのサブレポートでは、売上高を社員別に集計しています。

3. もう 1 つのサブレポートでは、売上高を区分別に集計しています。

同じレコード ソースにバインドされたメイン レポートとサブレポートの例   

年間の全売上高などの詳細なレコードを表示するためにメイン レポートを使用し、各四半期の売上高合計などの集計情報を表示するためにサブレポートを使用できます。

同じレコード ソースにバインドされたメイン レポートとサブレポート

1. サブレポートでは、年間売上高を四半期別に集計しています。

2. メイン レポートでは、日次売上高の一覧を表示しています。

関連するレコード ソースをメイン レポートとサブレポートにバインドされているの例   

メイン レポートには、1 つ以上のサブレポートに共通するデータを含めることができます。この場合、サブレポートには、メイン レポートのデータに関連するデータが含まれます。

関連データを表示する 2 つのサブレポートが含まれるメイン レポート

1. メイン レポートには、各見本市の名前と都市の一覧が表示されます。

2. サブレポートには、各見本市に参加する担当者の一覧が表示されます。

レポートのサブフォーム

メイン レポートがサブレポート、ほかのサブフォームを含めることができますだけのサブフォームを含めることができ、挿入できます。さらに、メイン レポートは 7 レベルまでのサブフォーム、サブレポートが含まれるを含めることができます。たとえば、レポート、サブレポートを含めることができ、サブフォームまたはサブレポートと 7 レベルまでに、そのサブレポートを含めることができます。

レポートにサブフォームを追加し、そのレポートをレポート ビューで開くと、サブフォームを使用して、レコードのフィルタ処理やレコード間の移動を行うことができます。フォームとそのコントロールに添付されている Visual Basic for Applications (VBA) コードおよび埋め込みマクロは引き続き実行できますが、この状況では一部のイベントが無効になります。レポート上のサブフォームを使用してレコードを追加、編集、または削除することはできません。

レポートをサブフォームまたはサブレポートにリンクする

メイン レポートのデータに関連する情報を含むサブフォームまたはサブレポートを挿入するときは、サブレポートのコントロールをメイン レポートにリンクする必要があります。リンクを使用することにより、サブフォームまたはサブレポートに表示されるレコードが、メイン レポートに出力されるレコードと正しく対応するようになります。

ウィザードを使用してサブフォームまたはサブレポートを作成するか、ナビゲーション ウィンドウからレポートにオブジェクトをドラッグしてサブフォームまたはサブレポートを作成する場合、次の条件のいずれかが満たされると、サブフォームまたはサブレポートがメイン レポートに自動的にリンクされます。

  • 選択すると、テーブルのリレーションシップを定義するか、選択したクエリを基になるテーブルのリレーションシップを定義します。

    リレーションシップの作成方法の詳細については、[参照] セクションのリンク先を参照してください。

  • メイン レポートが主キーのあるテーブルに基づいており、サブフォームまたはサブレポートの基になるテーブルにその主キーと同じ名前のフィールドが含まれていて、そのフィールドのデータ型が主キーと同じか互換性があること。たとえば、メイン レポートの基になるテーブルの主キーがオートナンバー型のフィールドであり、その "フィールドサイズ" プロパティが [長整数型] に設定されている場合、サブフォームまたはサブレポートの基になるテーブルで対応するフィールドは、"フィールドサイズ" プロパティが [長整数型] の数値型のフィールドでなければなりません。1 つ以上のクエリをサブフォームまたはサブレポートのレコード ソースとして選択する場合は、クエリ内の基になるテーブルが同じ条件を満たす必要があります。

ページの先頭へ

サブレポートを作成する

サブレポートをメイン レポートにリンクさせる場合は、次の手順を使用する前に、基になるレコード ソースが関連付けられていることを確認します。リレーションシップの作成の詳細については、「参照」セクションのリンクを参照してください。

サブレポート ウィザードを使用してサブレポートを作成する

  1. デザイン ビューで、メイン レポートとして使用するレポートを開きます。

  2. [デザイン] タブの [コントロール] グループで、[コントロール ウィザードの使用] ボタン イメージ が選択されていることを確認します。 ボタン イメージ

  3. [デザイン] タブの [コントロール] グループで、[サブフォーム/サブレポート ボタン イメージ ] をクリックします。

  4. レポートで、サブレポートを配置する場所をクリックします。

  5. 新しいサブフォームまたはサブレポートをテーブルまたはクエリに基づいて作成する場合は、サブレポート ウィザードの最初のページで、[既存のテーブルまたはクエリを使用する] をクリックします。サブレポートとして使用する既存のレポートまたはフォームがある場合は、[既存のレポートまたはフォームから作成する] をクリックし、一覧のレポートまたはフォームを選択して、[次へ] をクリックします。

    サブレポート ウィザードでのデータのソースの選択

  6. ウィザードの前のページで [既存のレポートまたはフォームから作成する] をクリックした場合は、この手順をスキップし、手順 7. に直接進んでください。それ以外の場合は、[テーブル/クエリ] ボックスの一覧で、サブレポートに含めるフィールドを含むテーブルまたはクエリを選択し、[選択可能なフィールド] ボックスの一覧で目的のフィールドをダブルクリックして、サブレポートに追加します。

    サブレポート ウィザードでフィールドを選ぶ

    サブレポートをメイン レポートにリンクする場合は、リンクの作成に使用するフィールドを表示する必要がなくても、そのフィールドを必ず含めてください。通常、リンクするフィールドは ID フィールドです。前の図では、"受注" テーブルがサブレポートのレコード ソースであり、"得意先" テーブルがメイン レポートのレコード ソースです。"受注" テーブルは "得意先 ID" フィールドによって "得意先" テーブルに関連付けられているため、このフィールドが [選択したフィールド] ボックスの一覧に追加されています。

    注: サブレポートには、複数のテーブルおよびクエリのフィールドを含めることができます。1 つのテーブルからフィールドを追加し終わったら、[テーブル/クエリ] ボックスの一覧で次のテーブルまたはクエリを選択し、目的のフィールドを追加します。

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

  7. ウィザードのこのページでは、サブレポートをメイン レポートにリンクする方法を決定します。サブレポートをメイン レポートにリンクするのに適したフィールドが見つかると、ウィザードにリンクの候補の一覧が表示されます。

    Access がサブレポート ウィザードでリンクするフィールドを提案する

    状況に最適と思われるリンクの候補を選択することも、サブレポートをメイン レポートとリンクしない場合は [なし] を選択することもできます。サブレポートをメイン レポートにリンクするつもりでも、候補がいずれも不適切と思われる場合は、[独自に設定する] をクリックします。

    注: ウィザードでリンクに適したフィールドが見つからない場合は、リンク候補の一覧が表示されず、[独自に設定する] が自動的に選択されます。

    サブレポート ウィザードで独自のリンクを定義する

    [独自に設定する] をクリックした場合は、ウィザードにドロップダウン リストのセットが 2 組表示されます。

    • [フォーム/レポートのフィールド] で、メイン レポートをサブフォームまたはサブレポートにリンクするためのフィールドをメイン レポートから選択します。フィールドは最大 3 つまで選択でき、選択する各フィールドは、サブフォームまたはサブレポートのデータ ソース内の関連フィールドと一致している必要があります。

    • [サブフォーム/サブレポートのフィールド] で、選択したメイン レポートのフィールドにリンクする、サブフォームまたはサブレポートの対応するフィールドを選択します。

    • サブフォームまたはサブレポートをメイン レポートにリンクしないままにするには、すべての一覧を空にします。

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

  8. ウィザードの最後のページで、サブフォームまたはサブレポートの名前を入力するか、[完了] をクリックして既定値を受け入れます。

    サブレポート ウィザードでの名前の入力

レポートにサブレポート コントロールに追加され、コントロールを連結 (コントロールのソース オブジェクトのプロパティを設定、) 次のようにします。

  • ウィザードの最初のページで [既存のレポートまたはフォームから作成する] をクリックした場合は、指定したレポートまたはフォームにサブレポート コントロールが連結されます。

  • ウィザードの最初のページで [既存のテーブルまたはクエリを使用する] をクリックした場合は、ナビゲーション ウィンドウに新しいレポート オブジェクトが作成され、そのオブジェクトにサブレポート コントロールが連結されます。新しいレポート オブジェクトの名前は、ウィザードの最後のページで入力した名前と同じになります。

テーブル、クエリ、フォーム、またはレポートをサブレポートとしてレポートに追加する

簡単な方法サブレポートをレポートに追加するのにをデザイン ビューでメイン レポートを開き、ナビゲーション ウィンドウからそのオブジェクトをドラッグします。サブフォーム、サブレポートをメイン レポートにリンクする場合は、基になるレコード ソースが関連していると、レコード ソースにメイン レポートにリンクするサブフォーム、サブレポートに使用するフィールドが含まれていることを確認します。リレーションシップの作成の詳細については、「参照」セクションのリンクを参照してください。

  1. ナビゲーション ウィンドウで、メイン レポートとして使用するレポートを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

  2. ナビゲーション ウィンドウから、テーブル、クエリ、フォーム、または別のレポートを、メイン レポート内のサブレポートを表示する位置にドラッグします。

次のいずれかが実行されます。

  • Access で 2 つのオブジェクトのリンク方法を識別できる場合は、レポートにサブレポート コントロールが追加されます。フォームまたはレポートを追加すると、そのオブジェクトにサブレポート コントロールが連結されます。テーブルまたはクエリを追加すると、まずレポート オブジェクトが作成され、その新しいオブジェクトにサブレポート コントロールが連結されます。

  • 2 つのオブジェクトにリンクする方法を判断できないのは、アクセス、サブレポート ウィザードが表示されます。引き続き、サブレポートを作成する手順 7 を開始する」の手順に従います。

    ウィザードを完了すると、サブレポートがレポートに追加されます。

次の手順を使用して、サブフォームまたはサブレポートがメイン レポートに正しくリンクされていることをもう一度確認します。

  1. サブレポート コントロールをクリックして選択します。

  2. プロパティ シートがまだ表示されていない場合は、F4 キーを押して表示します。

  3. プロパティ シートの [データ] タブで、"リンク親フィールド" プロパティおよび "リンク子フィールド" プロパティを確認します。

    • リンクされていないサブフォームまたはサブレポートでは、これらのプロパティは両方とも空白になります。

    • リンクされているサブフォームまたはサブレポートでは、2 つのオブジェクトを関連付けるフィールドが "リンク親フィールド" プロパティおよび "リンク子フィールド" プロパティに表示されます。たとえば、メイン レポートに "社員" テーブルの情報が表示され、サブフォームまたはサブレポートに "受注" テーブルの情報が表示される場合、"リンク親フィールド" プロパティには "社員" テーブルの ID フィールドが、"リンク子フィールド" プロパティには "受注" テーブルの "社員 ID" フィールドが表示されます。

サブフォームまたはサブレポートを正しく動作させるためには、これらのプロパティの編集が必要になる場合があります。次の手順を使用します。

  1. プロパティ シートの [データ] タブで、[リンク親フィールド] ボックスをクリックし、[ [ビルダー] ボタン ] をクリックします。

    [サブレポート フィールド リンク ビルダ] ダイアログ ボックスが表示されます。

    [サブレポート フィールド リンク ビルダー] ダイアログ ボックス

  2. [親フィールド] ボックスの一覧と [子フィールド] ボックスの一覧で、レポートをリンクするためのフィールドを選択します。使用するフィールドがわからない場合は、[推奨] をクリックすると Access によってリンクするフィールドの判別が試行されます。完了したら、[OK] をクリックします。

    レポートのリンクに使用するフィールドが表示されない場合は、メイン レポートのレコード ソースを編集するか、サブフォームまたはサブレポートのレコード ソースを編集して、リンクするフィールドを含める必要があります。たとえば、レポートがクエリに基づいている場合は、リンクするフィールドがクエリ結果に存在することを確認する必要があります。

  3. メイン レポートを保存し、レポート ビューに切り替えて、レポートが期待どおりに機能することを検証します。

テーブルまたはクエリをデータシートとしてレポートに追加する

データシートは、スプレッドシートに似た、データの単純な視覚的表現です。データシートの各列はソース テーブルまたはソース クエリのフィールドを表し、各行はレコードを表します。"サブフォーム/サブレポート" コントロールを使用すると、レポートにデータシートを表示できます。これは、データをコンパクトに表示する必要があり、フォーム オブジェクトまたはレポート オブジェクトの書式設定機能は必要ない場合に適した方法です。データシートをレポートに追加するには、次の操作を行います。

  1. ナビゲーション ウィンドウで、メイン レポートとして使用するレポートを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

  2. [デザイン] タブの [コントロール] グループで、[コントロール ウィザードの使用]が選択されていないことを確認します。 ボタン イメージ

  3. [デザイン] タブの [コントロール] グループで、[サブフォーム/サブレポートツール ボタン イメージ ] をクリックします。

  4. レポートで、サブレポートを配置する場所をクリックします。

  5. サブレポート ウィザードが開始されたら、[キャンセル] をクリックしてウィザードを閉じます。

  6. プロパティ シートがまだ表示されていない場合は、F4 キーを押して表示します。

  7. レポートで、新しいサブレポート コントロールをクリックして選択します。

  8. プロパティ シートの [データ] タブで、"ソース オブジェクト" プロパティのボックスの矢印をクリックし、サブレポート コントロールに表示するテーブルまたはクエリをクリックします。たとえば、"受注" テーブルを表示するには、[テーブル.受注] をクリックします。

    データベースに定義されたリレーションシップに基づいて、データシートのメイン レポートへのリンクが試行されます。

  9. プロパティ シートの [データ] タブで、"リンク親フィールド" プロパティおよび "リンク子フィールド" プロパティを確認します。

    • リンクされていないデータシートでは、これらのプロパティが両方とも空であることを確認します。

    • リンクされいるデータシートでは、メイン レポートをデータシートに関連付けるフィールドが "リンク親フィールド" プロパティおよび "リンク子フィールド" プロパティに表示されていることを確認します。たとえば、メイン レポートに "社員" テーブルの情報が表示され、データシートに "受注" テーブルの情報が表示される場合、"リンク親フィールド" プロパティには "社員" テーブルの ID フィールドが、"リンク子フィールド" プロパティには "受注" テーブルの "社員 ID" フィールドが表示されます。

場合によっては、リンク フィールドのプロパティを自分で設定する必要があります。この操作を行うには、次の手順を使用します。

  1. プロパティ シートの [データ] タブで、[リンク親フィールド] ボックスをクリックし、[ [ビルダー] ボタン ] をクリックします。

    [サブレポート フィールド リンク ビルダ] ダイアログ ボックスが表示されます。

    [サブレポート フィールド リンク ビルダー] ダイアログ ボックス

  2. [親フィールド] ボックスの一覧と [子フィールド] ボックスの一覧で、メイン レポートをデータシートにリンクするために使用するフィールドを選択します。使用するフィールドがわからない場合は、[推奨] をクリックすると Access によってリンクするフィールドの判別が試行されます。終了したら、[OK] をクリックします。

    リンクに使用するフィールドが表示されない場合は、親レポートまたはデータシートのレコード ソースを編集して、リンクするフィールドを含める必要があります。たとえば、データシートがクエリに基づいている場合は、リンクするフィールドがクエリ結果に存在することを確認する必要があります。

  3. メイン レポートを保存し、レポート ビューに切り替えて、レポートが期待どおりに機能することを検証します。

ページの先頭へ

サブレポートのデザインを変更する

サブレポートをレポートに追加した後で、サブレポートのデザインを変更したり、メイン レポートでサブレポートのデータを参照したりできます。ここでは、このような作業を実行するためのヒントについて説明します。

デザイン ビューで新しいウィンドウにサブフォームまたはサブレポートを開く

メイン レポートをデザイン ビューで操作しているとき、サブフォームまたはサブレポートのデザインを変更するために、サブフォームまたはサブレポートを独自のウィンドウで開くことができす。

  1. サブフォームまたはサブレポートをクリックして選択します。

  2. [デザイン] タブの [ツール] グループで、新しいウィンドウでサブレポート ボタン イメージ ] をクリックします。

注: "サブフォーム/サブレポート" コントロールがテーブルまたはクエリに連結されている場合、このコマンドは使用できません。

サブレポートの合計をメイン レポートに表示する

"受注サブレポート" という名前のサブレポートを使用し、その中に "運送料合計" という名前のテキスト ボックスが含まれていて、そのテキスト ボックスで "運送料" 列の合計を計算するとします。メイン レポートでサブレポートの合計を表示するには、テキスト ボックスをメイン レポートに追加し、式を使用してサブレポートの [運送料合計] ボックスを参照する必要があります。この操作を行うには、次の手順を使用します。

  1. ナビゲーション ウィンドウでメイン レポートを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

  2. [デザイン] タブの [コントロール] グループで、テキスト ボックス] をクリックします。 ボタン イメージ

  3. メイン レポートで、新しいテキスト ボックスを配置する場所をクリックします。

  4. プロパティ シートがまだ表示されていない場合は、F4 キーを押して表示します。

  5. プロパティ シートの [データ] タブで、"コントロールソース" プロパティのボックスに次の式を入力します。

    = IIf (IsError ([注文サブレポート]. [レポート] です。[出荷先手数料の合計])、0 で、[注文サブレポート]。[レポート] です。[出荷手数料の合計])

    注記: 

    • この例より簡単な式を使用する可能性のある= [注文サブレポート]. [レポート] です。[出荷手数料の合計]次に、サブレポートには、すべてのデータが含まれていない、メイン レポート上のコントロールに表示されます#Errorします。最初の式で示すように、 IIf関数内では、 IsError関数を使用して、サブレポートですべてのデータが返されない場合、メイン レポート上のテキスト ボックスがゼロ (0) が表示されるようにします。

    • コントロール ソース] プロパティ ボックスで [ビルダー] ボタン ] をクリックして、式を作成するのには、式ビルダーを使用できます。

  6. プロパティ シートの [書式] タブで、"書式" プロパティを適切な値 (この場合は [通貨]) に設定します。

  7. レポートを保存し、レポート ビューに切り替えて、計算が期待どおりに行われることを検証します。

ページの先頭へ

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×