• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access レポートの体裁について)

Accessレポートの体裁について

このQ&Aのポイント
  • Access2010を使用して社員DBから経歴書(レポート)を作成する際の体裁について考えています。
  • 経歴書には、社員の基本情報、家族情報、資格情報などが載ります。
  • 家族や資格、履歴の情報表示について、どのようにするのが一般的かを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

>いまいちイメージがつかめておりません。 要は、普通とは逆の手順を実現するってことです。 【普通の手順】 手順1、テーブル設計。  ↓ 手順2、データ入力  ↓ 手順3、レポート出力。 【今回の手順】 手順1、レポートデザインの決定。  ↓ 手順2、レポートにマッチしたテーブル。  ↓ 手順3、テーブルにVBAでデータを入力。 普通は、レポートのデザインはテーブル設計の影響を受けます。今回は、その影響を完全に断ち切ってレポートデザインに従って入力データを改変するってことです。ですから、一番大事なのはレポートデザインの決定です。既存のテーブル構造なんてのは完全に無視して《あるべきデータ構造》を仮定してAccessのレポート機能の範囲でデザインを先行決定することが一番の課題です。当たり前のことですが、その後に《あるべきデータ構造》を現実化すれば目的は達成できます。 頑張ってください。

naoto0216
質問者

お礼

度々のご回答ありがとうございます。 なるほどですね。理解しました。 レポートのデザインを基準に、それに沿ったテーブルを 作成するんですね。 試してみたいと思います。 ありがとうございました。

その他の回答 (3)

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.3

> 上記の経歴書のような場合、家族や資格、履歴の部分はリスト > ボックスにして、それぞれでクエリをソースとすればよいのでしょうか。 サブレポートにするのが普通だと思いますよ。 「印刷時拡張」 を 指定しておけば、 データ数に応じて勝手にやってくれますし。 件数ゼロの場合には、メイン側に工夫が必要ですね。

naoto0216
質問者

お礼

m3_makiさま ご回答ありがとうございます。 サブレポートも「印刷時拡張」も使ったことがありません。。 ちょっと調べてみましたが、サブレポートは、メインレポートに 埋め込む・・って感じなのでしょうか。 今回の経歴書だと、メインレポートに社員の基本情報が載って、 家族や資格等をサブレポートにする。。って感じですかね。 で、各サブレポートには当該社員のIDで抽出した内容を 表示してやる・・みたいな。 「印刷時拡張」についてですが、これはテキストボックスに 入りきれないようなデータの場合、改行されて全てのデータが 表示される・・ってものなのでしょうか。 例えば、「    」このサイズのテキストボックスがあって データが"ああああああああ"だった場合、 「ああああ  ああああ」 となるのでしょうか。 要するに幅は固定で高さが変わる? ・・・って、とりあえず自力で調べてみたいと思います。 ありがとうございました。勉強になりました。

回答No.2

補足:一つのアイデア 【印刷用テーブル】 001|G01|S01|AAA|___|__________| 002|G01|S01|AAA|___|__________| 003|G01|S02|AAA|BBB|__________| 004|G01|S02|AAA|BBB|__________| 005|G01|S02|___|BBB|__________| 006|G01|S03|___|___|CCCCCCCCCC| 007|G01|S03|___|___|CCCCCCCCCC| 008|G01|S03|___|___|CCCCCCCCCC| 009|G01|S04|AAA|___|__________| 010|G01|S05|AAA|___|__________| 011|G02|S01|AAA|___|__________| 012|G02|S02|AAA|BBB|__________| 013|G02|S03|___|___|CCCCCCCCCC| 014|G02|S04|AAA|___|__________| 015|G02|S05|AAA|___|__________| 【出力イメージ】 《G01》   《S01》    AAA    AAA   《S02》    AAA BBB    AAA BBB    ___ BBB   《S03》    CCCCCCCCCC    CCCCCCCCCC    CCCCCCCCCC   ・・・・・   《S04》    AAA   《S05》    AAA 冒頭の印刷用テーブルを生成したとすれば目的に沿った出力が可能です。サブグループの各明細行には 1、左半分の大きさのテキストボックスAを配置。 2、右半分の大きさのテキストボックスBを配置。 3、AとBとを隠す長さのテキストボックスCを配置。 この3つのテキストボックスの表示・非表示はデータの組み合わせで制御できます。また、複数行をボックスで囲むことも不可能ではありません。 以上、先の回答の一アイデアを補足しておきます。

naoto0216
質問者

お礼

f_a_007さま ご回答ありがとうございます。 いまいちイメージがつかめておりません。。 印刷用のテーブルを作成できたとしたら、それを単純に 該当のテキストボックスに表示させるだけ・・って感じ でしょうか。 なんとなく、印刷用テーブルを作成するのも困難のような 感じがします。 例えばAという社員が4人家族で、資格を3つ持っていると します。で、単純にクエリを作ったとすると 社員名 家族    資格  A   本人   MCP01  A   本人   MCP02  A   本人   MCP03  A   妻    MCP01  A   妻    MCP02  A   妻    MCP03  A   子    MCP01  A   子    MCP02  A   子    MCP03  A   実父   MCP01  A   実父   MCP02  A   実父   MCP03 グループ化したとしても、このようにレコードが膨らむ かと思います。実際にはxxx履歴などがあるのでもっと 膨らむかと思います。 なので、そもそも印刷用テーブルを作成する方法が よく分からない状態です。

回答No.1

私ならば、クエリーをレポートソースにすることを断念します。では、どうするのか?それは、「社員経歴書」という印刷用に最適設計したテーブルに一旦データを落とします。もちろん。テーブルは一つとするのか?主従関係を持つ二つにするのか?その辺りは、更に検討する必要があるでしょう。

関連するQ&A