ACCESSレポート作成グループごとにページを分ける!
本日は久々にAccessレポートの追加の依頼があり作業をしました。
久々にAccessを触ったので機能を忘れてしまっていたので復習しながら作業したのですが、レポートの操作で気になる事があったので記事にします。
※Accessの基本は解説はしていませんが、少し学習した事がある方であれば問題ありません。
簡単に復習しながら説明しましょう!
例えばある会社にリーダーが2名いたとしましょう。
一人は「橋崎さん」
もう一名は「加藤さん」
そこに新人サブリーダーが4人入社しました。
「田中さん」「佐藤さん」「吉田さん」「近藤さん」
リーダー別にそれぞれグループ分けされています。
「橋崎さん」のグループには「田中さん」と「佐藤さん」が所属しています。
「加藤さん」のグループには「吉田さん」と「近藤さん」が所属しています。
今回は「橋崎さん」の新人グループ内メンバーと「加藤さん」の新人グループ内メンバーを会社の皆さんに紹介するために紙に印刷して渡そうと思います。
すると橋崎さんから印刷に対して次の様にリクエストがありました。
「印刷する用紙は1ページにまとめてではなくグループごとに分けて印刷して下さい。」
「橋崎」「加藤」→「田中」「佐藤」「吉田」「近藤」ではなく
「橋崎」→「田中」「佐藤」
「加藤」→「吉田」「近藤」と2つに分けたい
前置きはこんな感じでしょうか
本来であればAccessでする必要はないですが、これぐらいシンプルな方が分かりやすいでしょう。
テーブルを作成します。
Accessの基本中の基本テーブルを作成します。
作成するテーブルは「橋崎」「加藤」が所属する「リーダーテーブル」
そして「田中」「佐藤」「吉田」「近藤」が所属する「サブリーダーテーブル」の2つです。
リーダーテーブルのデザイン・データビュー


フィールド名について少し解説します。
- リーダー番号→これはデータベースでは欠かせない主キーとなる識別するための個別番号です。
- リーダー名→リーダーの名前を入れます。
主キーとなる識別するための個別番号について・・・皆さんも商品や名簿の一覧等を見た時、先頭に「000124」等と数列を見た事がないでしょうか?
このあたりをもう少し解説すると、例えば今回のリーダーが同姓同名の方である場合
仮にリーダー「田中洋子さん」が2名在籍しています。
人であれば様々な要素で「田中洋子さん」を識別する事ができます。例えば大阪出身の「田中洋子さん」と東京出身の「田中洋子さん」と言う感じですね。
しかしコンピューターは人のように識別する事はできません。どちらの「田中洋子さん」かわからないのです。仮にフィールド名で識別するために出身地を追加しても大阪出身の「田中洋子さん」が新たに入社してくかも知れませんからキリがありません。
そのような事がなくコンピューターから見て確実に識別出来るように重複しない個別の番号をそれぞれの「田中洋子さん」に割り付けるのです。
それが主キーで、基本的には各テーブルに設置する事が望まれます。
サブリーダーテーブルのデザイン・データビュー


フィールド名について少し解説します。
基本的にはリーダーテーブルと同じなので、リーダーテーブルにないリーダー番号について解説します。
簡単です。
これはリーダーのリーダー番号を入力する事でサブリーダーとリーダーを関連付けするためのフィールド名です。
リレーションを設定します。
先ほど説明したようにサブリーダーテーブルのリーダー番号には各リーダーのリーダー番号が登録されています。
Accessにはこのような関連を明確にしてAccessに伝える機能があります。
次の様に設定する事でAccessにリーダーテーブルのリーダー番号とサブリーダーテーブルのリーダー番号が連携している事を認識させます。

クエリの作成
次に印刷するためのレポートの元となるデータを作成します。
元々リーダーテーブルとサブリーダーテーブルは別々のテーブルです。
それをクエリで合体させてやる感じでしょうか。
クエリ作成時にテーブルを追加するとリレーションの線が自動で表示され関連を表しています。これはさきほどのリレーションの設定をしているのでAccessが勝手に表示してくれます。
今回は印刷する項目は「リーダー番号」「リーダー名」「サブリーダー名」とします。


これで2つのテーブルがリーダー番号を軸に1つのデータとなりました。
レポートを作成します。
先ほど作成したクエリを元にしてレポートを作成します。
今回はレポートデザインから作成します。
単純に項目を表示しました。


これでは橋崎さんの希望通りにはなっていませんから、まだ納品はできませんね!
グループ別に設定します。
リーダー番号を基準にグループ化の設定をします。

するとレポートのデザインビューに「リーダー番号ヘッダー」が追加されました。

次の様に配置を変更しました。
リーダー番号ヘッダーにリーダー関係の項目(「リーダー番号」「リーダー名」)を移動しています。

印刷プレビューです。
少しわかりやすく罫線等をつけました。これでリーダーの直下にサブリーダーが並びグループ分けがされています。
しかしこれでは全て1ページで表示されているので希望通りではありません。

改ページの設定
これからがお伝えしたかった本番なんですが、実は今回これが中々気が付きませんでした。
先に作業を進めて説明します。
リーダー番号ヘッダーのプロパティ→書式タブ→改ページを「カレントセッションの前」に変更します。

印刷プレビューで確認します。
1ページ目

2ページ目

リーダーごとに各ページに分かれて印刷出来るようになりました。
あと細かい表示の調整をすれば無事納品出来そうです。
今回はこの改ページの「カレントセッションの前」に設定する事に中々気が付きませんでした。
私もまだまだです。
Accessは慣れると面白いですよ!
アプリの勉強でAccessをされる方は少ないと思います。
しかしAccessはデータベースを勉強しようとしている方にとっては良いツールだと思っています。
あまり偉そうな事を言う程のスキルはありませんが、上達のコツは教本などのサンプルばかり勉強するのはなく身近な自分に関係しているデータでさらに今回紹介したような簡単な構造で作成する事を繰り替えすのが近道だと思います。
エクセルの達人は結構いますが、アクセスはあまりいない印象ですよね!
アクセスでデータをキーワード検索して一覧で表示するような仕組みを作れるようになればあなたも一目置かれるようになりますよ!
ご注意
記事内容についてのご質問の受付は時間が取れませんので行っておりません。
使用しているパソコンの状態・状況や周辺機器の環境等もトラブルに関連している場合もあるので記事に書かれている内容を行う事で必ずトラブルが解消されるとは限りません。またこの記事を参考に作業される場合は自己責任でお願いします。作業された場合での損害や障害が発生しても当店は一切責任は負いませんのでご了承下さい。
この記事の内容は投稿日時点での内容です。時期によっては仕様などの変更により、この記事のとおりではない場合もございます。

大阪府八尾市を拠点に大阪府・奈良県・京都府南部を中心にパソコン出張サポートを20年近く自営で行っています。パソコン・周辺機器のトラブルやご相談はお気軽にお問い合わせください。
詳しくはこちらから