Access (VBA)

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

 
(その他 : Access 2010)
レポート上で行と列を逆にしたい
投稿日時: 20/11/12 16:52:58
投稿者: 滝沢

顧客|商品|2018|2019|2020
−−−−−−−−−−−−−−
0001|AAAA|1000|2000|3000
0001|BBBB|5000|4000|3000
 :
0002|AAAA|8000|8000|8000
0002|BBBB|8000|8000|8000
 :
 
このようなテーブルがあります。
・2018〜2020は年度で、値は売上金額です。
・商品は全顧客共通。(AAAA〜EEEEの5つ。売れていなくても0円でレコードあり)
・顧客数は10,000件程度です。
 
このテーブルから、1顧客1枚のレポートを作りたいです。
顧客のグループヘッダーの「改ページ」プロパティを「カレントセクションの前」として
以下のようにすることはできました。
 
|商品|2018|2019|2020|
−−−−−−−−−−−−−
|AAAA|1000|2000|3000|
|BBBB|5000|4000|3000|
|CCCC|5000|5000|5000|
|DDDD|5000|5000|5000|
|EEEE|5000|5000|5000|
 
ですが、できれば以下のようにしたいです。
 
|商品|AAAA|BBBB|CCCC|DDDD|EEEE|
−−−−−−−−−−−−−−−−−−−
|2018|1000|5000|5000|5000|5000|
|2019|2000|4000|5000|5000|5000|
|2020|3000|3000|5000|5000|5000|
 
可能でしょうか?
よろしくお願い致します。

回答
投稿日時: 20/11/12 17:30:43
投稿者: sk

引用:
顧客|商品|2018|2019|2020
−−−−−−−−−−−−−−
0001|AAAA|1000|2000|3000
0001|BBBB|5000|4000|3000
 :
0002|AAAA|8000|8000|8000
0002|BBBB|8000|8000|8000
 :
  
このようなテーブルがあります。
・2018〜2020は年度で、値は売上金額です。
・商品は全顧客共通。(AAAA〜EEEEの5つ。売れていなくても0円でレコードあり)

上記のような非正規形テーブルしか定義されておらず、
かつ[商品]の値が 5 種類に限定されているのであれば、
とりあえず以下のような手順でクエリおよびレポートを
作成して下さい。
 
1. 次のようなユニオンクエリを作成する。
 
( SQL ビュー)
--------------------------------------------------
SELECT [テーブル名].[顧客],
      [テーブル名].[商品],
      2018 AS [年度],
      [テーブル名].[2018] AS [売上金額]
FROM [テーブル名]
UNION ALL
SELECT [テーブル名].[顧客],
      [テーブル名].[商品],
      2019 AS [年度],
      [テーブル名].[2019] AS [売上金額]
FROM [テーブル名]
UNION ALL
SELECT [テーブル名].[顧客],
      [テーブル名].[商品],
      2020 AS [年度],
      [テーブル名].[2020] AS [売上金額]
FROM [テーブル名];
--------------------------------------------------
 
2. 1 のユニオンクエリを元に、次のようなクロス集計クエリを作成する。
 
( SQL ビュー)
--------------------------------------------------
TRANSFORM Sum([ユニオンクエリ名].[売上金額]) AS [売上金額の合計]
SELECT [ユニオンクエリ名].[顧客],
       [ユニオンクエリ名].[年度]
FROM [ユニオンクエリ名]
GROUP BY [ユニオンクエリ名].[顧客],
         [ユニオンクエリ名].[年度]
ORDER BY [ユニオンクエリ名].[顧客],
         [ユニオンクエリ名].[年度]
PIVOT [ユニオンクエリ名].[商品]
   IN ("AAAA","BBBB","CCCC","DDDD","EEEE");
--------------------------------------------------
 
3. 2 のクロス集計クエリをレコードソースとするレポートを
   適宜作成する。

投稿日時: 20/11/12 19:02:07
投稿者: 滝沢

sk様
コメントありがとうございます。
いただいた通りに設定したら、ばっちりできました。
ありがとうございます。

投稿日時: 20/11/12 19:03:00
投稿者: 滝沢

解決済み。