Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
注文書作成
投稿日時: 20/07/25 18:03:23
投稿者: らっぱ90

Accessのレポートデザインの質問
"販売リスト"テーブルに以下のフィールドがあるものとします。
   ID 日付 販売先1 商品名1 数量1 金額1 販売先2 商品名2 数量2 金額2
   販売先3 商品名3 数量3 金額3
もうひとつ"販売先一覧"テーブルがあります。
   ID 会社名 住所 電話番号
各販売先に注文書を発行するためレポートを作成します。
   販売先会社名  住所 電話番号 商品名 数量 金額
この時、販売リストテーブルの販売先1、販売先2、販売先3と販売先一覧テーブル
の会社名にはリレーション設定がしてあるとします。
販売先1〜3はレコードを分けることができないとし、販売先1〜3はいつも同じ会社
とは限りません。
レポートを日付ごとにA4版 3枚で3社宛に注文書をデザインしたいのですが、
テーブル2つの中からレポート用にデータを抽出する方法がわかりません。

回答
投稿日時: 20/07/26 16:33:30
投稿者: hatena
投稿者のウェブサイトに移動

まず"販売リスト"テーブルから下記のようなユニオンクエリを作成します。
 
SELECT ID, 日付, 販売先1 AS 販売先, 商品名1 AS 商品名, 数量1 AS 数量, 金額1 AS 金額
FROM 販売リスト
UNION ALL
SELECT ID, 日付, 販売先2 AS 販売先, 商品名2 AS 商品名, 数量2 AS 数量, 金額2 AS 金額
FROM 販売リスト
UNION ALL
SELECT ID, 日付, 販売先3 AS 販売先, 商品名3 AS 商品名, 数量3 AS 数量, 金額2 AS 金額
FROM 販売リスト;
 
名前を "Q販売リスト" として保存します。
 
クエリを新規作成して、"販売先一覧"テーブルと"Q販売リスト"クエリを追加して、
販売先フィールドと会社名フィールドを結合します。
 
それぞれのテーブル/クエリから必要なフィールドを表示させます。
 
これをレポートのレコードソースとすればいいでしょう。
 
 
本来はユニオンクエリの結果のような形のテーブルに最初からしておくべきですが、、、。

投稿日時: 20/07/26 16:35:22
投稿者: らっぱ90

1レコードに販売先が3つあり、各々の会社あてに注文書を分けてデザインしようとすると、
むずかしいので、3レコードに分けました。販売先1の販売リストと販売先2、販売先3の
販売リストをユニオンクエリで結合し、それをレポートにしようとしていますが、デザイン
方法がわかりません。ユニオンクエリでは販売先1,2,3を販売先、商品名1,2,3を商品名、
数量1,2,3を数量、金額1,2,3を金額と名前変更し、レポートにこの販売先、商品名、
数量、金額を使おうとするとエラーになってしまいます。

回答
投稿日時: 20/07/26 16:59:38
投稿者: hatena
投稿者のウェブサイトに移動

らっぱ90 さんの引用:

むずかしいので、3レコードに分けました。販売先1の販売リストと販売先2、販売先3の
販売リストをユニオンクエリで結合し、それをレポートにしようとしていますが、デザイン
方法がわかりません。ユニオンクエリでは販売先1,2,3を販売先、商品名1,2,3を商品名、
数量1,2,3を数量、金額1,2,3を金額と名前変更し、レポートにこの販売先、商品名、
数量、金額を使おうとするとエラーになってしまいます。

 
私の回答の方法とほぼ同じ方法のようですが、うまくいきませんか。
現状のクエリのSQLを提示してもらえますか。
そのクエリからレポートウィザードで作成した場合はどうなりますか。
 
 
別案も提示しておきます。
クエリを新規作成して、
"販売リスト"テーブルを追加、"販売先一覧"テーブルを3回追加します。
2回目以降のテーブルには、"販売先一覧_1" "販売先一覧_2"と別名がつきます。
販売先1 と 販売先一覧 を結合、
販売先2 と 販売先一覧_1 を結合、
販売先3 と 販売先一覧_3 を結合
します。
それぞれ必要なフィールドを表示させます。
これをレポートのレコードソースとします。
 
レポートの詳細セクションに3社分のフィールドを配置して、
改ページコントロールを2つ配置して、3社分に改ページされるようにします。

投稿日時: 20/07/26 18:10:11
投稿者: らっぱ90

ありがとうございました。
レコードを3つに分けユニオンクエリで結合して求めるレポートが作成
できました。