ACCESSレポート作成グループごとにページを分ける!

こんにちは! イマジネットPCサポートの橋崎です。

本日はAccessレポートの追加依頼があり作業をしました。久々にAccessを触ったので機能を忘れていました。復習しながら作業したのですが、レポートの操作で気になる事があったので記事にします。

作成するレポートの概要

例えばある会社にリーダーが2名いたとしましょう。

一人は「橋崎さん」

もう一名は「加藤さん」

そこに新人サブリーダーが4人入社しました。

「田中さん」「佐藤さん」「吉田さん」「近藤さん」

リーダー別にそれぞれグループ分けされています。

「橋崎さん」のグループには「田中さん」と「佐藤さん」が所属しています。

「加藤さん」のグループには「吉田さん」と「近藤さん」が所属しています。

こんな感じですかね。

橋崎グループ田中さん・佐藤さん
加藤グループ吉田さん・近藤さん

今回は「橋崎さん」メンバーと「加藤さん」メンバーを会社の皆さんに紹介するために紙に印刷して渡そうと思います。

すると橋崎さんから印刷に対して次の様にリクエストがありました。

「印刷する用紙は1ページにまとめてではなくグループごとに分けて印刷して下さい。」

「橋崎」「加藤」→「田中」「佐藤」「吉田」「近藤」ではなく

「橋崎」→「田中」「佐藤」

「加藤」→「吉田」「近藤」と2つに分けたい

前置きはこんな感じでしょうか

本来であればAccessでする必要はないですが、これぐらいシンプルな方が分かりやすいでしょう。

テーブルを作成します。

Accessの基本中の基本テーブルを作成します。

テーブルとはデータを保存する箱のようなイメージです。

今回作成するテーブルは以下の2つです。

  • 橋崎さん・加藤さんが所属する・・・リーダーテーブル
  • 田中さん・佐藤さん・吉田さん・近藤さんが所属する・・・サブリーダーテーブル

リーダーテーブル

リーダーテーブルのデザイン・データビュー

リーダーテーブルのデザインビュー
リーダーテーブルのデータビュー

リーダーテーブルのフィールド名について少し解説します。

  • リーダー番号→これはデータベースでは欠かせない識別するための個別番号です。この個別番号の事を主キーと言います。
  • リーダー名→リーダーの名前を入れます。

リーダー番号で主キーと言う聞きなれない名称が出ましたね。

ではこの主キーについては簡単にご説明します。

主キーとはデータを識別するためのものです。

もうちょっと具体的に言いましょう。

例えば今回のリーダーが同姓同名の方である場合を想像して下さい。

仮にリーダー「田中洋子さん」が2名在籍しています。

人であれば様々な要素で「田中洋子さん」を識別する事ができます。例えば大阪出身の「田中洋子さん」と東京出身の「田中洋子さん」と言う感じですね。

しかしコンピューターは人間のような識別方法はできません。どちらの「田中洋子さん」かわからないのです。

イヤイヤ、大阪と東京ならコンピューターでも識別できるでしょ。

そうですね、厳密には可能でしょうね。

しかしこのような事も考えられませんか?

識別するための出身地フィールドを追加しても大阪出身の「田中洋子さん」が新たに入社してくるかも知れません。

そんな時どうしますか?

また新たに識別するためのフィールドを追加します?

そんな事は構造上かなりの手間なので、できません。テーブルのフィールドをそんなに頻繁に変更していたらデータベースのどこに影響が出るのかわかったものではありませんからね。

そのような事がなく前もってコンピューターから見て確実に識別出来るように重複しない個別の番号をそれぞれの「田中洋子さん」に割り付けるのです。

よくある顧客コードや得意先コードなどがそうですね。

この主キーは同一のデータベースで同じものが割り当てられる事はありません。

ただ、ここまで説明しておいて何ですが、今回のテーマにはあまり関係がありません。

サブリーダーテーブル

サブリーダーテーブルのデザイン・データビュー

サブリーダーテーブルのデザインビュー
サブリーダテーブルのデータビュー

フィールド名について少し解説します。

基本的にはリーダーテーブルと同じなので、リーダーテーブルにないリーダー番号について解説します。

簡単です。

これはリーダーのリーダー番号を入力する事でサブリーダーとリーダーを関連付けするためのフィールド名です。

上の画像で言えば田中さん、佐藤さんのリーダー番号は橋崎さんのリーダー番号「001」が入力されています。

この事で田中さん、佐藤さんは橋崎さんのグループに属している事が判断できます。

リレーションを設定します。

先ほど説明したようにサブリーダーテーブルのリーダー番号には各リーダーのリーダー番号が登録されています。

この関連を明確にしてAccessに伝える機能があります。

次の様に設定する事でAccessにリーダーテーブルのリーダー番号とサブリーダーテーブルのリーダー番号が連携している事を認識させます。

クエリの作成

次に印刷するためのレポートの元となるデータを作成します。

元々リーダーテーブルとサブリーダーテーブルは別々のテーブルです。

それをレポートの元データとして使用できるようにクエリで加工する感じでしょうか。

クエリ作成時にテーブルを追加するとリレーションの線が自動で表示され関連を表しています。これはさきほどのリレーションの設定をしているのでAccessが勝手に表示してくれます。

今回は印刷する項目は「リーダー番号」「リーダー名」「サブリーダー名」とします。

クエリのデザインビュー
クエリのデータビュー

これで2つのテーブルがリーダー番号を軸に1つのデータとなりました。

レポートを作成します。

先ほど作成したクエリを元にしてレポートを作成します。

今回はレポートデザインから作成します。
単純に項目を表示しました。

レポートのデザインビュー
レポートの印刷プレビュー

何となく形にはなっていますが、何にかスッキリしません。

これでは橋崎さんの希望通りにはなっていませんから、まだ納品はできませんね!

グループ別に設定します。

レポートのグループ化を設定しましょう。

リーダー番号を基準にグループ化の設定をします。

グループ化する項目をリーダー番号に指定します。

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

次の様に配置を変更しました。

リーダー番号ヘッダーにグループ化した項目、今回は「リーダー番号」と「リーダー名」を移動させます。

印刷プレビューです。
少しわかりやすく罫線等をつけました。

これでリーダーごとにサブリーダーが下に並びグループ分けがされています。

これでも完成と言ってもよいですが、グループごとにペー分けもしておきましょう。

改ページの設定

リーダー番号ヘッダーのプロパティ→書式タブ→改ページを「カレントセッションの前」に変更します。

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

2ページ目

リーダーごとに各ページに分かれて印刷出来るようになりました。

あと細かい表示の調整をすれば無事納品出来そうです。

Accessに興味のある方はこちらのページも是非見て下さい。

Accessをされる方は少ないと思います。

しかしAccessはデータベースを勉強しようとしている方にとっては良いツールだと思っています。

あまり偉そうな事を言う程のスキルはありませんが、上達のコツは教本などのサンプルばかり勉強するのはなく身近な自分に関係しているデータでさらに今回紹介したような簡単な構造で作成する事を繰り替えすのが近道だと思います。

エクセルの達人は結構いますが、アクセスはあまりいない印象ですよね!

アクセスでデータをキーワード検索して一覧で表示するような仕組みを作れるようになればあなたも一目置かれるようになりますよ!

また、Accessを勉強してみたい思っている方はこちらの記事も参考になると思います。

ご注意

記事内容についてのご質問の受付は時間が取れませんので行っておりません。

ご自身が使用しているパソコンの状態・環境により、同じような症状であっても同じとは限りません。したがって記事に書かれている内容を行う事で必ずトラブルが解消されるとは限りません。またこの記事を参考に作業される場合は自己責任でお願いします。作業された場合での損害や障害が発生しても当店は一切責任は負いませんのでご了承下さい。

この記事の内容は投稿日時点での内容です。時期によっては仕様などの変更により、この記事のとおりではない場合もございます。