Microsoft Access 掲示板

レポート用のテーブル(クエリ)を作成したい / 1

4 コメント
views
4 フォロー
1
hatena 2023/12/13 (水) 16:45:08 修正

まずは「T_取込」テーブルを正規化されたテーブルに変換します。
正規形のテーブルは記のようになります。

T_会社別売上 (テーブル名は適当ですので実態にあったものに変更してください。)

ID会社ID商品ID個数
1112
3121
4132
6141
7211

上記のフィールドも持つ空のテーブルを作成しておきます。
ID はオートナンバー型の主キーにしておきます。

下記のSQLのクエリを作成します。

SELECT
 会社マスター.会社ID,
 商品マスター.商品ID,
 Choose([商品ID],[商品1],[商品2],[商品3],[商品4]) AS 個数
FROM
 T_取込 INNER JOIN 会社マスター ON T_取込.社名 = 会社マスター.社名, 商品マスター
ORDER BY
 T_取込.取込ID, 会社マスター.会社ID, 商品マスター.商品ID;

これを保存してデータシートビューで希望のデータになっていることを確認したら、
追加クエリに変更して追加先を「T_会社別売上」テーブルにします。
この追加クエリを実行するとT_会社別売上に上記のデータ例のようにデータが追加されます。


下記のような数値型フィールドが一つのテーブルを作成します。
予想される最大個数までの連番を入力しておきます。

T_Num

Num
1
2
3
4
5

下記のようなSQLのクエリを作成すればレポート出力用にデータになります。

SELECT
 会社マスター.社名,
 会社マスター.[〒],
 会社マスター.住所1,
 商品マスター.商品名
FROM
  (T_会社別売上 INNER JOIN 会社マスター ON T_会社別売上.会社ID = 会社マスター.会社ID)
   INNER JOIN 商品マスター ON T_会社別売上.商品ID = 商品マスター.商品ID
  , T_Num
WHERE
 T_Num.Num<=[個数]
ORDER BY
 T_会社別売上.会社ID, T_会社別売上.商品ID, T_Num.Num;

これをレポートのレコードソースに設定すればいいでしょう。

通報 ...
  • 3
    My Car Bomber 2023/12/14 (木) 14:21:41 7fdfc@46fae >> 1

    ありがとうございます!
    正規化されたテーブルを作るところからやってみます!