dポイントプレゼントキャンペーン実施中!

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
-----------------------------------


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

A 回答 (1件)

アクセスを使いメインテーブルに氏名、備考、住所を入力してあり、サブテーブルに第1項目、第2項目、第3項目を入力してあるものとします。


クエリーで二つの表を合体します。レポートで6つのフィールドを図のように配置し、罫線を入れると図のようになります。(すみませんこぴーしたら罫線は消えてしまいました)



山一郎 160



学生 50


東京 10


川次郎 180


事務員 70


大阪 20
    • good
    • 0
この回答へのお礼

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

ちょっとわたしの質問の仕方が悪かったかもしれません。
例えば
サブ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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!