Microsoft Access 掲示板

1対多とそうでないレコードが混在する場合

1 コメント
views
4 フォロー

サービス業をしていて、1売上1レコードになるので、売上テーブルのみで伝票テーブルのようなものはありません
ごく僅かな仕事で1日の集計値をもって1売上とするものがあります
計算した合計値のみを売上としてACCESSに入力すればよいのですが、
コピペやインポートをすると間違いがあったり手間がかかるので
直接1件ずついれていき、集計をやって売上の計算をしたいです

このように、直接売上にレコードを追加していくテーブルに1対多のレコードをまぜてよいのでしょうか?
集計値は計算になるので売上テーブルには残らず、レポートなどで表示したときに集計される設計になりますよね?

まき
作成: 2021/09/27 (月) 18:17:38
通報 ...
1

1取引1レコードがほとんど、稀に1取引複数レコード(一対多)のものがあるということですね。

方法はいろいろあると思います。
それぞれ一長一短がありまするので、実際の業務や運用によって適切なものを選択することになると思います。

取引テーブルと売上明細テーブルというように一対多のテーブルに分けて、
1取引1レコードの場合は、明細テーブルは1レコードのみ、とする。
取引テーブルには金額フィールドは持たない。

取引テーブルと売上明細テーブルというように一対多のテーブルに分ける。
取引テーブルには金額フィールドを持たせる。
1取引1レコードは、取引テーブルに金額を入力、明細テーブルは入力しない。
1取引複数レコードは、明細テーブルに入力して、取引テーブルに集計値を入力(VBAで自動入力するといいでしょう)。

通常はどちらかを選択することになるでしょう。

あるいは、過去にやったことがある方法としては、下記のようなものがありました。
取引テーブルに金額フィールドの他にテキスト型で内訳フィールドというのを追加して、
そこにCSV形式のデータとして格納しておく。

品名,個数,単価
商品1,2,1000
商品2,3,2000

複数レコードの場合、非連結のフォームを別に表示して、そこで入力して、
VBAでCSV形式にして内訳フィールド格納、というようなことを作りこみます。