レコードソースの活用

 レポートにさまざまなコントロールを置いて表示することにより文書作成を行うことができますが、装飾や文書整形の自由度と利便性に関してはワープロソフトなどと比べて大きく劣ります。
 レポートが強みを発揮するのは、テーブルやクエリが持っている各レコードの内容に応じて異なる文書を大量に作成するという場合です(この場合のテーブルやクエリをレコードソースといいます)。Wordでいう差し込み印刷にあたりますが、そもそもAccessのレポートはレコードソースの存在を前提としたつくりになっていますので、基本的に設定がしやすく、また、レポート内部で高度な集計や演算が可能あること、連結オブジェクトフレームや添付ファイルオブジェクトによりファイルを容易に扱えること、複雑な構造を持つ文書作成を可能にするサブレポートが利用可能であること、などの大きなメリットがあります。
 もちろん、はがきや宛名ラベル印刷にも対応しており、ウイザードの利用により素早く設定することができます。

テーブルに記録された文字列をテキストボックスに表示する例

 簡単な例として、右のようなテーブルに基づくレポートを作成し、テーブルに記録されている文字列を表示させてみるものとします。


 新たなレポートを作成し、デザインビューの画面でグリッドの外側にある薄い灰色の部分を右クリックして「プロパティ」を選択します。


 レポートのプロパティのウインドウが表示されます。その中の「レコードソース」において、先ほどのテーブルの名称である「顧客テーブル」を選択します。これにより、このレポートは顧客テーブルのデータに基づくものとなり、顧客テーブルのデータを自由に表示させることが可能となります。


 そこで、(ページヘッダーやページフッターではなく)「詳細」の部分(詳細セクション)にテキストボックスを置き、「=[氏名]」と入力します。
 テキストボックスに「="氏名"」と入力した場合は、印刷プレビューで表示しても「氏名」と表示されるだけですが、このようにでくくった場合は、氏名という列のデータを引用して表示するものとなります。

※ を使わず単に「氏名」と入力しても「氏名」列のデータを表示してくれます。しかし、ラベルとまぎらわしいので、本サイトでは列のデータを表示させようとする場合は、テキストボックスに「=[列名]」と入力することとします。


 印刷プレビューで見てみると右のようになります。デザインビューには1つのテキストボックスを置いただけですが、顧客テーブルの「氏名」列のデータが、レコードの数だけ繰り返し表示されていることがわかります。
 正確にいうと、テーブルやクエリをレコードソースとして設定した場合、その行(レコード)の数だけ詳細セクションが繰り返されるようになっているので、このような結果となります。


詳細セクションの機能

 さて、「レポート作成の第一歩」の節においては、詳細セクションのことを(ヘッダー以外の)本文にあたる部分として紹介しましたが、特徴的な機能として、上記のようにレポートのレコードソースとしてテーブルやクエリを設定することにより、(特にそれ以外の設定をしなくとも)テーブルやクエリの行の数だけ繰り返し表示されるようになっています。
 このセクション内部ではコントロールの配置を自由にレイアウトできますので、テーブルやクエリでは実現できないようなデータの表示の仕方が可能です。

 例として、テーブルに含まれる「住所」「氏名」「会員種別」の各列の内容を詳細セクション内に配置してみます。せっかくですので上下に並ぶように配置してみます。


 印刷プレビューはこのようになります。テーブルやクエリにおいては列は横に並ぶものであり、それを変えることはできませんでしたが、レポート上ではこのような柔軟な表示が可能となります。
 詳細セクションの高さや幅は自由に変えることができますので、小さくすれば宛名ラベルのような印刷に使うことができますし、大きくすれば一般のビジネス文書等に応用できます。


連結コントロール

テーブルに記録された画像やファイル等を表示する例