Accessサブレポートの使い方についてお探しですね。

広告

Accessのサブレポートで複数のデータをまとめて印刷しよう

Accessでデータベースを作っていると、1つの表だけでは足りなくなってきますよね。

特に印刷物やPDFを作るとき、「お客さんの情報と購入履歴を1枚にまとめたい」「売上伝票に明細を並べたい」といった要望が出てくるはずです。

そんなときに便利なのが「サブレポート」という機能です。

この記事では、サブレポートの基本から作り方、うまく印刷するコツまで、わかりやすく解説していきます。

サブレポートって何?複数のデータを1枚にまとめる便利な機能

サブレポートとは、簡単に言うと「メインのレポートの中に、別のレポートを組み込む機能」のことです。

Accessは複数の表を関連付けて使うデータベースなので、「1つのデータに対して複数のデータが紐づく」という構造がよく出てきます。

これを画面で見るときは「サブフォーム」を使いますが、印刷用の帳票として出力するのが「サブレポート」というわけです。

例えば、売上伝票を印刷する場面を想像してみてください。

伝票の上の方には「伝票番号」「日付」「お客さんの名前」といった、1つの伝票に1つだけある情報が並びます。

そして伝票の真ん中から下には「商品名」「値段」「個数」「合計金額」といった明細が、表のように何行も並ぶのが普通ですよね。

こうした性質の違う2種類のデータを、別々のレポートで作ってドッキングさせるのがサブレポートの役目なんです。

このように、メインとなる単票形式のレポートに、詳細情報をリスト化したレポートを埋め込むことで、見やすくて整った1枚の印刷物ができあがります。

Excelみたいに手作業でコピペを繰り返す必要もなく、データベースに入っている最新の情報を自動的にきれいな帳票にできるのが最大の魅力です。

サブレポートが活躍する場面とそのメリット

サブレポートを使いこなせば、日々の仕事がぐっと楽になります。

具体的な活用例としては、さっき紹介した「売上伝票と明細」の他にも、「毎月の請求書」「お客さんごとの対応履歴」「プロジェクトごとのタスク進捗レポート」などがあります。

どれも、1つの見出しに対して複数の関連データがぶら下がっている構造の帳票です。

こうした複雑な帳票を作るとき、サブレポートを使わないととても面倒です。

メインのデータと明細を別々に印刷してホッチキスで留めたり、わざわざExcelにデータを書き出してからレイアウトを整えたりと、効率の悪い作業が増えてしまいます。

サブレポートを使えば、ボタン一つで関連データがまとまった帳票を画面で確認でき、そのまま紙に印刷したりPDFで保存したりできるようになります。

さらに、最近ではデータベースの情報をクラウドサービスや専用ツールに渡してPDF化することも増えていますが、Accessのサブレポート機能をマスターすれば、追加のシステムにお金をかけなくても高度な帳票を自分で作れます。

レイアウトの自由度も高く、自社の用紙に合わせたミリ単位の調整や、明細の行数に応じた枠の自動拡張など、柔軟な印刷フォーマットが作れるのが大きなメリットです。

サブレポートの作り方を順番に解説

それでは、実際にAccessでサブレポートを作る手順を見ていきましょう。

大まかな流れは、まずメインレポートとサブレポートをそれぞれ別々に作り、次にメインレポートの中にサブレポートを配置して、最後に両者をつなぐための設定をする、という3ステップです。

**ステップ1:メインレポートとサブレポートを別々に作る**
**ステップ2:メインレポートのデザインビューにサブレポートを配置する**
**ステップ3:親フィールドと子フィールドをリンクさせる**

最初のステップでは、土台となるメインレポートと、そこに組み込むサブレポートを個別に作ります。

このとき、サブレポート側には必ずメインレポートとデータを紐づけるための「共通のキー(売上IDやお客さんIDなど)」となる項目を入れておいてください。

ただし、この共通キーは画面に表示する必要はないので、プロパティシートで「可視」を「いいえ」にして隠しておくと、印刷したときの見た目がすっきりします。

次のステップでは、作ったメインレポートをデザインビューで開きます。

画面上のリボンメニューから「サブレポート」のコントロールを選んで、レポートの詳細セクション内の配置したい場所でドラッグして四角い枠を作ります。

するとウィザードが起動するので、さっき作っておいたサブレポートを選んで組み込みます。

すでにあるレポートをナビゲーションウィンドウから直接ドラッグ&ドロップして配置することもできます。

最後のステップが一番重要です。

配置したサブレポートの枠を選択して、プロパティシートの「データ」タブを開きます。

そこにある「リンク親フィールド」にメインレポートのキー項目(売上IDなど)を、「リンク子フィールド」にサブレポート側のキー項目を指定します。

この設定をすることで、メインレポートに表示されている特定のデータに紐づく明細だけが、サブレポート部分に正しく表示されるようになります。

うまくいかないときのチェックポイントと設定のコツ

サブレポートを作ったのに、プレビュー画面で見ると思った通りに表示されない…というケースはよくあります。

よくある失敗の一つが「全部の明細データがすべてのページに表示されてしまう」という現象です。

これは、さっき説明した「リンク親フィールド」と「リンク子フィールド」の設定が正しくできていない、または空白になっていることが原因です。

メインとサブをつなぐキー情報がちゃんと一致しているか、もう一度確認してみてください。

また、印刷したときのレイアウト崩れにも注意が必要です。

明細データが少ないときは問題ないのに、データが多くなると文字が切れてしまうことがあります。

これを防ぐには、サブレポートコントロールのプロパティで「拡張可能」という項目を「はい」に設定しておきます。

こうすることで、印刷される明細のデータ量(行数)に合わせて自動的にサブレポートの枠が縦に伸びるようになり、すべてのデータが途切れずに印刷されます。

さらに、Accessのレポート作成でよくあるのが「印刷すると不要な白紙ページが挟まってしまう」というトラブルです。

これは、メインレポートの横幅と左右の余白を合計したものが、設定している用紙サイズ(A4など)の横幅を超えている場合に起こります。

サブレポートを配置したことで全体の横幅が知らないうちに広がっていないか、デザインビューでレポートの右端の境界線をチェックして、用紙サイズ内にきちんと収まるようにコントロールの幅を微調整することが、きれいな印刷物を作る最大のコツです。

広告