• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1対多データのレポート表示方法について)

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

このQ&Aのポイント
  • 1対多の関係でデータを持っている場合、メインデータと関連する複数のサブデータをレポートで表示する方法について説明します。
  • メインデータとサブデータを結び付けるキーを使用して、サブデータをメインデータと一緒に表示します。
  • サブデータはメインデータに関連づけられたデータであり、複数行表示されます。メインデータに付随する情報(備考、住所など)とサブデータを組み合わせて表示することができます。

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

  • ベストアンサー
noname#192382
noname#192382
回答No.1

アクセスを使いメインテーブルに氏名、備考、住所を入力してあり、サブテーブルに第1項目、第2項目、第3項目を入力してあるものとします。 クエリーで二つの表を合体します。レポートで6つのフィールドを図のように配置し、罫線を入れると図のようになります。(すみませんこぴーしたら罫線は消えてしまいました) 山一郎 160 学生 50 東京 10 川次郎 180 事務員 70 大阪 20

peewee726
質問者

お礼

ご回答ありがとうございます。 ちょっとわたしの質問の仕方が悪かったかもしれません。 例えば サブ1-1 というのは、サブレコードの1項目ではなく、サブテーブルの1行となります。 サブ1-1 の中に、項目A、項目B、項目c・・・・というデータがあるのです。 なお、別のところで、 > グループヘッダーのFormat時イベントに > > Me.MoveLayout = False > > と書いておけば希望通りのレイアウトになるかも…。 とアドバイス頂いたのですが、 このようにすると、サブレコード数の高さで次のメインレコードが表示されてしまうため、 サブレコードが2件、メインの高さの行数が5行、 というような場合、2行分で次のメインレコードの表示になってしまうようで、どんどん行が重なってメチャクチャな表示となってしまいました・・・・・ そして、Me.MoveLayout = true だと、重なりは起こらないのですが、メインレコードの表示が終わった高さから、サブレコードの表示となるので、思った通りの表示となりません。 なお、グループヘッダーを使わず、すべて詳細セクションに置いて、メインレコードの項目のみを「重複データは非表示」でもやってみたのですが、こうすると、メインレコードの行の高さが5行分あったとすると、その中にサブレコードのデータは1行分づつしか入らないことになってしまいます。 (説明の表現がわかりづらいかもしれませんが。すみません) 結局、当初やっていたように、レポートの中にサブレポートを作って入れ、 親と子のレポートを「リンク子フィールド」「リンク親フィールド」で結びつけて表示させる、 という方法でしかできないことがわかりました。(恐らく) ※当初「サブレポートを使う方法ではできなかった」というのは勘違いでした。すみません。 皆さま、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • access レポートで表示されないデータ

    2つのクエリの情報をメインとサブでレポート作っています。 2つのクエリは名前テーブルでそれぞれのテーブルとリレーションしています。 ただ、2つのクエリに情報が入っているものは表示されるのですが、 サブレポートに設定しているクエリの情報しかないものはレポート出力されません。 なにが問題なのでしょうか?よろしくお願いします。

  • メイン/サブレポートのコントロール表示について

    環境:XP&ACCESS2003 サブレポートがメインレポートのほぼ中央に位置するレポートを作成しています。 サブレポートの下には、メインレポートのデータが数件表示されます。(連結コントロール) サブレポートの元となるテーブルのデータがゼロ件の時があります。 (受注番号で連結) サブレポートの元となるテーブルのデータがゼロ件の場合、メインレポートのサブレポート以下のデータがサブレポート分だけ上に表示される方法をご存知の方、教えてください。 よろしくお願いします。

  • アクセスでサブレポートにデータが表示されない?

    アクセスでサブレポートにデータが表示されない? MSアクセス(2010)で、レポートAに レポートBを貼り付けました。 (レポートBはレポートAの サブレポートのつもりです) 元のレポートBには、Tableデータが 表示されているのですが、 レポートAに張り付けた、サブレポートB上には、 Tableデータが表示されません。 表示させるための手順等、ご教示ください。

  • Accessメインレポート非表示

    Access初心者です。 サブレポートにリンクされたメインレポートがあります。 サブレポートに表示するレコードが無い場合は、メインレポートのレコードも非表示にし、印刷対象外にしたいのですが、可能なのでしょか? 方法があれば教えて下さい。 よろしくお願い致します。

  • ACCESS2000レポートを一定の行数で改頁

    ACCESS2000を使っています。 メインレポートの詳細部にサブレポートがあり、サブレポートの詳細部を 決まった行数で印刷したいのですが、いい方法はありませんか? 今は、メインレポートのページヘッダ・フッタの高さの調整で対処しています。 よろしくお願いします ┌----------------------┐ |メインレポート ページヘッダ        | ├----------------------┤ |メインレポート 詳細部           | |┌--------------------┐|  ||サブレポート グループヘッダ      ||  |├--------------------┤| ||サブレポート◇詳細部     (1行目)||┐ ||               (2行目)||├この行数を ||               (・・・)|||固定にしたい ||               (9行目)|||例では10行 ||              (10行目)||┘ |├--------------------┤| ||サブレポート グループフッタ      || |└--------------------┘| ├----------------------┤ |メインレポート ページフッタ        | └----------------------┘

  • accessレポート表示までの待機時間が長いです?

    accessでテーブルよりメイン・サブのデータをレーポートに出力して納品書として使用するつもりで作ってみたのですが、レポートを表示させようとしたときデータの量が多すぎるのか、待機表示が出たままで応答していませんと出て1~2分ぐらいかかって表示されるようになっています。(メインのデータは3000 サブのデータは7000ぐらいあるのですがこれくらいで動きがおそくなるのですか?)教えてください。

  • Accessのメインレポートとサブレポート

    Accessでメインレポートとサブレポートがあるレポートを作っています。 メインレポートのページが変わるたびに、サブレポートのレコードソースを変更して、サブレポートの再表示をさせたいのですが、どうやればいいのでしょうか? ちなみにメインのほうで以下のように記述しましたが、 (3)でエラーになります。 (エラー内容:記述ミス、または開いていない) Private Sub Report_Page() (1) Dim strSQL As String (2) strSQL = "SELECT * FROM Meisai" _ & " WHERE DenNo = " _ & Format(Reports!r日報!DenNo.Value, "000000") (3) Reports!r明細!.RecordSource = strSQL End Sub

  • ACCESS レポート・テキストの高さ

    レポートを作成しています。 元になるレコードソースは、 コード・品名・備考です。 備考は、複数行の入力があります。 このようなテーブルをもとにレポートを作成していますが、 コード・品名はテキストの高さは0.5で収まります。 備考は、レコードにより収まりきらないので、 ”印刷時拡張”の機能を使い、表示させています。 これで十分なのですが、 例えば、コード・品名は高さ0.5 備考は高さ2 という表示になります 備考に併せて、コード・品名の高さを大きくする方法はありませんか? どうかよろしくお願い致します。

  • access #error 表示について

    ABCという3つのクエリを利用してレポートを作成しています。 Aはメイン。あとのBCをサブレポートとしていて、 そのサブレポートのデータをメインで参照表示させていますが、 データがないものは#errorと表示されます。 データがあれば正しく表示されます。 これはせめて印刷のときだけでも表示されないようにすることは 出来ないでしょうか? よろしくお願いします。

  • Access2002 255以上のフィールドをレポートで表示させたい

    Access2002を使っています。Accessは初心者です。 255以上あるフィールドをレポートでA3用紙(横)1枚におさめたいと思っています。 構造は,下の通りです。 テーブル1,テーブル2,テーブル3,テーブル4 クエリ1(テーブル1~3をもとに)・・・フィールドが200あります クエリ2(テーブル4をもとに)・・・・・フィールドが150あります 初心者判断で,クエリ1とクエリ2をもとに350あるフィールドを1枚のレポートにおさめるには,A3用紙の右側の部分にサブレポートを作成すると解決できるのではと考え,マニュアルを読んで,レポート1にサブレポートを追加する作業を進めました。しかし,「アプリケーション定義またはオブジェクト定義のエラーです」というメッセージが表示され作成できませんでした。 サブレポートの概念がよくわからないのですが,サブレポートにこだわらず,350もあるフィールドをA3用紙(横)1枚にレポートで出力できる最も簡単な方法があったら教えて下さい。何分,Accessは初心者なので,よろしくご教示下さい。よろしくお願いします。

専門家に質問してみよう