こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

1対多データのレポート表示方法について

1対多データのレポート表示方法について

1対多の関係でデータを持っている、メインとサブ2つのテーブルがあります。

1つのメインテーブルのキーで、複数のサブテーブルのデータが取得されます。
このデータをレポートで表示する際に、下記のように表示させる方法はあるのでしょうか?

-----------------------------------
メイン1      | サブ1-1
          |-----------------------------------
  メイン1の備考 | サブ1-2
          |-----------------------------------
  メイン1の住所 | サブ1-3
-----------------------------------
メイン2      | サブ2-1
          |-----------------------------------
  メイン2の備考 | サブ1-2
          |-----------------------------------
  メイン2の住所 | 
-----------------------------------
メイン3      | サブ3-1
          |-----------------------------------
  メイン3の備考 | サブ1-2
          |-----------------------------------
  メイン3の住所 | サブ1-3
-----------------------------------

つまり、メインのデータは、1レコードでサブデータの複数行分の高さを使います。
(備考、住所などは、メインテーブルの付属情報です。)
サブデータは、メインデータに関連づけられたデータが複数行表示されます。





※現在、下記のような形ならば、レポートの詳細部分に、サブレポートを入れてサブの部分を表示させる、ということで実現できたのですが・・・・
-----------------------------------
メイン1       | サブ1-1
  メイン1の備考  | 
  メイン1の住所  | 
-----------------------------------
           | サブ1-2
-----------------------------------
           | サブ1-3
-----------------------------------
メイン2       | サブ2-1
  メイン2の備考  | 
  メイン2の住所  | 
-----------------------------------
           | サブ2-2
-----------------------------------
           | サブ2-3
-----------------------------------


どうぞよろしくお願いします。

投稿日時 - 2010-10-10 19:25:54

QNo.6240785

すぐに回答ほしいです

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

アクセスを使いメインテーブルに氏名、備考、住所を入力してあり、サブテーブルに第1項目、第2項目、第3項目を入力してあるものとします。
クエリーで二つの表を合体します。レポートで6つのフィールドを図のように配置し、罫線を入れると図のようになります。(すみませんこぴーしたら罫線は消えてしまいました)



山一郎 160



学生 50


東京 10


川次郎 180


事務員 70


大阪 20

投稿日時 - 2010-10-10 21:49:52

お礼

ご回答ありがとうございます。

ちょっとわたしの質問の仕方が悪かったかもしれません。
例えば
サブ1-1
というのは、サブレコードの1項目ではなく、サブテーブルの1行となります。
サブ1-1 の中に、項目A、項目B、項目c・・・・というデータがあるのです。


なお、別のところで、
> グループヘッダーのFormat時イベントに
>
> Me.MoveLayout = False
>
> と書いておけば希望通りのレイアウトになるかも…。

とアドバイス頂いたのですが、

このようにすると、サブレコード数の高さで次のメインレコードが表示されてしまうため、
サブレコードが2件、メインの高さの行数が5行、
というような場合、2行分で次のメインレコードの表示になってしまうようで、どんどん行が重なってメチャクチャな表示となってしまいました・・・・・

そして、Me.MoveLayout = true だと、重なりは起こらないのですが、メインレコードの表示が終わった高さから、サブレコードの表示となるので、思った通りの表示となりません。


なお、グループヘッダーを使わず、すべて詳細セクションに置いて、メインレコードの項目のみを「重複データは非表示」でもやってみたのですが、こうすると、メインレコードの行の高さが5行分あったとすると、その中にサブレコードのデータは1行分づつしか入らないことになってしまいます。
(説明の表現がわかりづらいかもしれませんが。すみません)


結局、当初やっていたように、レポートの中にサブレポートを作って入れ、
親と子のレポートを「リンク子フィールド」「リンク親フィールド」で結びつけて表示させる、
という方法でしかできないことがわかりました。(恐らく)

※当初「サブレポートを使う方法ではできなかった」というのは勘違いでした。すみません。


皆さま、ありがとうございました。

投稿日時 - 2010-10-11 03:20:42

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問