- ベストアンサー
Accessレポートの体裁について
- Access2010を使用して社員DBから経歴書(レポート)を作成する際の体裁について考えています。
- 経歴書には、社員の基本情報、家族情報、資格情報などが載ります。
- 家族や資格、履歴の情報表示について、どのようにするのが一般的かを教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>いまいちイメージがつかめておりません。 要は、普通とは逆の手順を実現するってことです。 【普通の手順】 手順1、テーブル設計。 ↓ 手順2、データ入力 ↓ 手順3、レポート出力。 【今回の手順】 手順1、レポートデザインの決定。 ↓ 手順2、レポートにマッチしたテーブル。 ↓ 手順3、テーブルにVBAでデータを入力。 普通は、レポートのデザインはテーブル設計の影響を受けます。今回は、その影響を完全に断ち切ってレポートデザインに従って入力データを改変するってことです。ですから、一番大事なのはレポートデザインの決定です。既存のテーブル構造なんてのは完全に無視して《あるべきデータ構造》を仮定してAccessのレポート機能の範囲でデザインを先行決定することが一番の課題です。当たり前のことですが、その後に《あるべきデータ構造》を現実化すれば目的は達成できます。 頑張ってください。
その他の回答 (3)
- m3_maki
- ベストアンサー率64% (296/460)
> 上記の経歴書のような場合、家族や資格、履歴の部分はリスト > ボックスにして、それぞれでクエリをソースとすればよいのでしょうか。 サブレポートにするのが普通だと思いますよ。 「印刷時拡張」 を 指定しておけば、 データ数に応じて勝手にやってくれますし。 件数ゼロの場合には、メイン側に工夫が必要ですね。
お礼
m3_makiさま ご回答ありがとうございます。 サブレポートも「印刷時拡張」も使ったことがありません。。 ちょっと調べてみましたが、サブレポートは、メインレポートに 埋め込む・・って感じなのでしょうか。 今回の経歴書だと、メインレポートに社員の基本情報が載って、 家族や資格等をサブレポートにする。。って感じですかね。 で、各サブレポートには当該社員のIDで抽出した内容を 表示してやる・・みたいな。 「印刷時拡張」についてですが、これはテキストボックスに 入りきれないようなデータの場合、改行されて全てのデータが 表示される・・ってものなのでしょうか。 例えば、「 」このサイズのテキストボックスがあって データが"ああああああああ"だった場合、 「ああああ ああああ」 となるのでしょうか。 要するに幅は固定で高さが変わる? ・・・って、とりあえず自力で調べてみたいと思います。 ありがとうございました。勉強になりました。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
補足:一つのアイデア 【印刷用テーブル】 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つのテキストボックスの表示・非表示はデータの組み合わせで制御できます。また、複数行をボックスで囲むことも不可能ではありません。 以上、先の回答の一アイデアを補足しておきます。
お礼
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履歴などがあるのでもっと 膨らむかと思います。 なので、そもそも印刷用テーブルを作成する方法が よく分からない状態です。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
私ならば、クエリーをレポートソースにすることを断念します。では、どうするのか?それは、「社員経歴書」という印刷用に最適設計したテーブルに一旦データを落とします。もちろん。テーブルは一つとするのか?主従関係を持つ二つにするのか?その辺りは、更に検討する必要があるでしょう。
お礼
度々のご回答ありがとうございます。 なるほどですね。理解しました。 レポートのデザインを基準に、それに沿ったテーブルを 作成するんですね。 試してみたいと思います。 ありがとうございました。