Accessで親テーブルと2つの明細テーブルでできているデータのレポートを作りたい

このQ&Aのポイント
  • Accessで親テーブルと2つの明細テーブルでできているデータのレポートを作成する方法について教えてください。
  • レポート機能で詳細セクションに2つの明細テーブルのデータを表示させることはできるのでしょうか?
  • ウィザードを使ってレポートを作成すると、明細テーブルの表示がうまくいかない問題があります。
回答を見る
  • ベストアンサー

Accessで親テーブルと2つの明細テーブルでできているデータのレポートを作りたい

親テーブルと2つの明細テーブルでできているデータのレポートを作りたいのですが、レポート機能ではフォーム作成のように、詳細セクションに2つの明細テーブルのデータを表示させることはできますか? ウィザードを使って作成するとどうしても以下のようになってしまいます。 (ちなみに親テーブルと明細テーブルは伝票番号でリレーションしています) ↓↓↓↓ 伝票番号000001に対して、明細Aテーブル(2レコード)、明細Bテーブル(1レコード)あるとする。 ----------------------------------------------------------- 本来は以下のように表示したい ヘッダーセクション 伝票番号:000001  親テーブルの情報:xxxxxxx 詳細セクション  明細Aの情報 01 aaaaaaaa  明細Aの情報 02 aaaaaaaa 明細Bの情報 11 bbbbbbbb ------------------------------------------------------------ 実際は以下のように表示される ヘッダーセクション 伝票番号:000001  親テーブルの情報:xxxxxxx 詳細セクション  明細Aの情報 01 aaaaaaaa 明細Bの情報 11 bbbbbbbb  明細Aの情報 02 aaaaaaaa 明細Bの情報 11 bbbbbbbb

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

  • ベストアンサー
  • Anzu4699
  • ベストアンサー率59% (26/44)
回答No.1

>レポート機能ではフォーム作成のように、詳細セクションに2つの明細テーブルのデータを表示させることはできますか? 2つの明細テーブルのデータを表示させる事自体なら、サブフォーム見たくサブレポートを用いれば可能です ウィザードで作れたかどうかは不明ですが、ベースをウィザードで作りその後デザインで開いてサブレポートで繋げていけば良いと思います フォームと違ってレポートでの注意点としては 普通に作ると明細Aの情報印字するエリア(サブレーポートA)と明細Bの情報印字するエリア(サブレーポートB)の間に空欄が出来るケースがあります、サブレポートAのエリア幅や高さの調整(コーディングやプロパティー設定など)が必要になります ※フォームならスクロールバーでコト足りるのでしょうが、レポートではスクロールバーなど出すものではありません そういった調整は複雑になりがちな為、サブレポートがつらなるようなものはあまり作られる事はありません ※ないというわけではない、ここらの制御は想定された制御を記載していく形になる為、想定外が来た場合バグりやすいためあまり用いられないというだけです。 クエリーなどを解しシンプルなレポートにするよう心がける事をおすすめします ・今回のテーブル構成だと、簡単な例としては追加クエリーでワークテーブルに格納し1つの明細テーブルを作り上げ、そのワークテーブルを用いてレポート出力する ・ワークテーブルを持ちいらず行ないたいなら、出きるかどうか不明ですが、クエリーで1つの明細テーブルになるようにSQL文を作成する 質問がAccessバージョンやADPなのかMDBなのか不明ですが Access2000でのMDBならではの回答です、Accessのバージョンがあがるにつれ機能が豊富になってるので出きるのかもしれませんがAccess2000では以上の回答になります

関連するQ&A

  • ACCESSクエリで複数テーブルの値の結合について

    現在、ACCESS2000で2つのテーブルの値を表示するクエリを作成中です。 テーブルは外部データよりインポートしています。 Aテーブル KEY1 | KEY2 | 値1 -------------------------- 00000001 | AAAAAAAA | 100 00000001 | BBBBBBBB | 200 00000002 | AAAAAAAA | 1000 Bテーブル KEY1 | KEY2 | 値1 -------------------------- 00000001 | AAAAAAAA | 500 00000002 | BBBBBBBB | 300 これを、 KEY1 | KEY2 | 値1 ------------------------------------------------ 00000001:00000001 | AAAAAAAA:AAAAAAAA | 100:500 ←(1) 00000001:NULL | BBBBBBBB:NULL | 200:NULL ←(2) 00000002:NULL | AAAAAAAA:NULL | 1000:NULL ←(3) NULL:00000002 | NULL:BBBBBBBB | NULL:300 ←(4) と表示したいのです。 INNER JOIN では、上記(1)しか表示されません。 また、LEFT JOIN では、(1)(2)(3)は表示されますが、(4)が表示されません。 SQLは下記です(INNER JOINを使用した場合) SELECT [Aテーブル.KEY1] & ":" & [Bテーブル.KEY1] AS KEY1, [Aテーブル.KEY2] & ":" & [Bテーブル.KEY2] AS KEY2, [Aテーブル.値1] & ":" & [Bテーブル.値1] AS 値1 FROM Aテーブル INNER JOIN Bテーブル ON ([Aテーブル].[KEY1]=[Bテーブル].[KEY1]) AND ([Aテーブル].[KEY2]=[Bテーブル].[KEY2]); どなかた教えてください。お願いします。

  • ACCESSクエリで複数テーブルの抽出方法

    #1583217にて質問させていただいたものです。 私の早とちりで質問を締め切りさせていただいたのですが、クエリが要求通りに出てくれません。 再度、質問させて下さい。 現在、ACCESS2000で2つのテーブルの値を表示するクエリを作成中です。 テーブルは外部データよりインポートしています。 Aテーブル KEY1 | KEY2 | 値1 -------------------------- 00000001 | AAAAAAAA | 100 00000001 | BBBBBBBB | 200 00000002 | AAAAAAAA | 1000 Bテーブル KEY1 | KEY2 | 値1 -------------------------- 00000001 | AAAAAAAA | 500 00000002 | BBBBBBBB | 300 これを、 KEY1 | KEY2 | 値1 ---------------------------------------- NULL:00000002 | NULL:BBBBBBBB | NULL:300 と表示したいのです。(Bテーブルにあるデータのみを表示) どなかた教えてください。お願いします。

  • 各伝票に対して明細を1行目だけ表示したい

    たびたびお世話になります。 仮に以下のようなテーブルを考えるとします。 ○テーブルA (伝票) 伝票番号 (PK) 顧客コード ○テーブルB (伝票明細) 伝票番号 (PK) 伝票明細 (PK) 注文コード 大盛り区分 レストランなどでお客さんが注文した注文伝票を 想像していただければ良いかと思います。 一つの伝票番号に対して、複数の伝票明細があると。 DB上は上記のように格納するとします。 ここでテーブル結合を使って、各伝票の1行目の明細を表示しながら SQL1発で抜いてきたいと思います。どういうSQLを考えたら良いでしょうか? テーブルBの表示項目が1つだけなら、 SELECT A.伝票番号, A.顧客コード, (SELECT TOP 1 注文コード FROM テーブルB B WHERE A.伝票番号 = B.伝票番号) FROM テーブルA A で良いのですが、複数項目となるとどうやったら良いのか判りません。

  • ACCESSで可能・・?6行6明細のレポート

    ヘッダー項目(得意先コード、伝票NOなど) に対して 詳細     |色番1|本数2| ・・・・ 色番6 本数6  品番1|    |    |・・・・・|    |    |  ・   ・ 品番6|    |    |・・・・・|    |    | 6行6明細の伝票を使っているのですが アクセスでCSVファイルをインポートして 伝票に近いものを作れないかと考えているのですが 難しいでしょうか?

  • アクセス、単票形式のリポート、グループ化が壊れているのか?

     連続ですが、アクセスで質問です。百貨店伝票のようなリポートを出力したいので、取引先や伝票番号などは一レポートにつき一回だけ印刷しその下に、伝票の各行にあたる明細が件数分だけ並ぶようなものを作ろうとしました。  単票形式のレポートで、グループ化ヘッダーを設定し、一回しか表示しなくていいものはそちらへ移動。伝票明細にあたるものは詳細に残しましたが、詳細のラベルにあたるものはグループ化ヘッダーの方へコピー、詳細のほうは削除しました(ラベルだけでの移動ができなかったため)。(この時点で壊れているんでしょうか?)  これを表示させると、詳細には、余白があるかぎり別の伝票番号の明細も表示されてしまいます。もともと伝票番号ごとの単票形式を土台としているのにどうしてこういうことになるのでしょう?  フォームと違って親子を結合させているわけでもないので、リンクの設定もできません。  どうしたら伝票番号毎に明細がグループ化され、伝票番号が変わるときには、別の頁のあたまから始まるようにできるでしょうか? windows2000 access2002です どうかお願いします。

  • ACCESSレポート改ページ教えてください☆

    いつもお世話になっております。今回も悩み悩んでいます。(-。-;) 今回もよろしくお願いします。 以下のようなクエリで作成したデータを作成しました。 商品グループ   仕入日   金額    A       07/08/01   10     B       07/08/23   50     A       07/08/01   20     B       07/08/24   10  このようなデータを使用しまず、レポートを作成する際に商品グループごとに改ページしたいと思い、商品グループのグループヘッダーを作成しプロパティで、"セクションの前" に設定し、うまくいきました。 1つの条件でグループ化、改行はうまくいくのですが、以下のように商品グループと仕入日でグループ化し、改行するにはどうすればよいのでしょうか? 《P1》 A    -----(商品グループヘッダー) 07/08/01 -----(仕入日グループヘッダー)  10   -----(明細)  20 《P2》 B    -----(商品グループヘッダー) 07/08/23 -----(仕入日グループヘッダー)  50   -----(明細) 《P3》 B    -----(商品グループヘッダー) 07/08/24 -----(仕入日グループヘッダー)  10   -----(明細) 設定だけでうまくいくのでしょうか? VBAとか必要になってくるのでしょうか? よろしくお願い致します。。

  • アクセスでの伝票レポートで質問です

    こんにちは アクセス2000でのデータベースで質問です。 市販?の納品伝票に印刷したいのですが、5件以上の商品が印刷されません。 ページヘッダーに伝票マスタ、詳細に伝票明細を入れています。 詳細は、サブレポートを使用しています。 5件までの登録ですと印刷されるのですが、それ以上の詳細が、でてきませんし、次のページにも印刷されません。 次ページは、次のデータになってしまっています。 改ページもカレントセクションの後にしましたが、かわりません。

  • 他のテーブルの抽出条件で更新したい。

    ・売上ヘッダ  伝票NO,売上金額合計 ・売上明細  伝票NO,明細NO,商品番号,売上金額 上記のようなテーブル構成の2つのテーブルがあります。 売上ヘッダの主キーは、伝票NOで売上明細の主キーは、伝票NOと明細NOです。 ここで、商品番号1の、売上金額に500円の差額があるため、、修正をしたいと考え、売上ヘッダと売上明細にある売上額を変更したいのですが、売上ヘッダの売上金額合計を更新する方法がわかりません。 ご教授いただけないでしょうか。

  • ACCESSでテキストデータから伝票データにしたいのですが教えて下さい。

    ACCESS2003でテキストデータをテーブルにインポートしたのですがこのデータを3行毎に伝票番号を変更したデータの作り方がありましたら教えて下さい。よろしくお願いします。 例(テキストデータ5行の場合) 伝票番号1行番号1明細1 伝票番号1行番号2明細2 伝票番号1行番号3明細3 伝票番号2行番号1明細4 伝票番号2行番号2明細5

  • モデルクラスの数は?テーブル数?ビュー数?

    MVCのモデルクラスについて質問です。 例えば、伝票テーブルと、伝票明細テーブルがあったとき、 (伝票テーブル:伝票番号 100 取引先A  伝票明細テーブル:    伝票番号 100 商品A 100円 15個    伝票番号 100 商品B 200円 10個  のようなもの) 「モデルクラス」は 「伝票テーブル操作用」と 「伝票明細テーブル操作用」に分けるべきでしょうか? それとも分けないべきでしょうか? 私は、 SELECT用なら「伝票テーブルと伝票明細テーブルを結合した状態でモデルクラスをつくる」 INSERT、UPDATE、DELETE用なら「伝票テーブル用」と「伝票明細テーブル用」に分けているのですが、 この方法はあっているでしょうか? 大抵のテーブルが参照オンリーではなく登録系も必要であるシステムなら、 「テーブル数」=「モデルクラス数」とし、 参照をメインにするようなシステムなら 「ビューの数」=「モデルクラス数」とする認識です。

専門家に質問してみよう