
No.4ベストアンサー
- 回答日時:
>売り単価が変更になった場合過去の売上データが変わってしまいます。
原因は2通りあります。
1.リレーションで参照整合性のフィールドの連鎖更新が設定されている。そのため商品のマスタの売り単価が変更されると過去の売上のレコードまで変更されてしまう。
2.過去の売上データに売り単価のフィールドがなく保存されていない。そのため商品のマスタの売り単価を参照するので変更されれば変更後の金額でしか計算できない。
1の場合は売り単価が変更されると自動的に過去の売り単価も変更されてしまいます。連鎖更新が設定されていればチェックをはずし売り単価が変更になっても更新されないようにすれば大丈夫です。
2の場合は他の方が書いてありますが商品のマスタの売り単価のみで売り単価をクエリ等で演算している場合は売り単価が変更になれば変更後の金額でしか過去の売り単価も計算できません。
売上時の売り単価で過去のレコードも計算したいのであれば売上時の売り単価を保存するフィールドをそのテーブルに作り売上時の売り単価を保存するしかありません。
売り単価がいつ変更になったかが分かるテーブルでもあれば売上のレコードの売上日と売り単価変更日を参照してその時点での売り単価で計算することはでいますが。
何か設定があるはず!って思っておりました。
たぶん「連鎖更新」で回避できると思うので、がんばってみます。
貴重なお時間とアドバイスありがとうございました。
No.3
- 回答日時:
私の場合、将来内容が変更になる可能性のあるものは、冗長になってもテーブルにそのデータ(この場合は売上テーブルの単価フィールドとして)を入れてしまいます。
どうしてもルックアップ系で使いたいのなら、
単価マスターの履歴管理をしなければならないでしょう。
単価マスターにサブコードなどを追加し、商品コードとそのサブコードを売上テーブルに保存するしかないでしょう。
でもコードが複雑になるのであまりお勧めしませんが...
No.2
- 回答日時:
過去の売上データが変わってしまうとのことですが、売上を選択クエリ上で演算結果として表示させている、ということでしょうか?
もしそうではなく、テーブル上に売上データを記録するフィールドがあって、アクションクエリ(更新/追加)で記録しているのだとすれば、そのクエリにWhere条件を追加することで対処できる気がするのですが・・・。
(例えば、fuuten_no_nekoさんがいわれているような「出庫日時」など)
私も独学なので、見当違いでしたら済みません。
すみません。説明が不足していまして。。。
リレーションを組んでいて、売上データには、ID・日付・数量の情報。商品マスタには、ID・品名・単価の情報。でクエリで売上金額を算出してるんです。
#04、O_cyanさんの参照整合性フィールドの連鎖更新・・・が、まずは簡単そうなのでトライしてみます。
ありがとうございました。

No.1
- 回答日時:
データ構造を変更しなければならないでしょう。
例えば現在
商品マスタ
商品コード(PKey)、商品名、単価、. . . .
を二つのテーブルに分け
商品マスタ
商品コード(PKey)、商品名、. . . .
単価リスト
単価ID(Pkey)、商品コード、単価、開始日時、終了日時、. . . .
みたいにすれば、これでリレーションが取れます。出庫時の日時が記録されていなければ駄目ですが、もしそうならばそこから直さなければ。
とにかく基本的な部分の変更なので、かなりしんどいでしょう。ご健闘を祈ります
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL文で、合計が0のレコードを...
-
EXISTSを使ったDELETE文
-
ACCESS 商品毎の最新の単価を設...
-
テーブル名の トラン マスタ...
-
日付により変動する「単価」を...
-
access2000について
-
ACCESS ツリービューの作り方
-
サブクエリの書き方
-
無駄に見える結合の回数を減ら...
-
ACCESSでクエリ作成時複数のフ...
-
Accessの実行時エラーについて
-
フィルターかけた後、重複を除...
-
SQLで特定の項目の重複のみを排...
-
差し込み後、元データを変更し...
-
Outlook 送受信エラー
-
外部参照してるキーを主キーに...
-
SELECT 文 GROUP での1件目を...
-
count集計の結果が0の場合でも...
-
エクセルの関数について教えて...
-
エクセルで最後の文字だけ置き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
SQL文で、合計が0のレコードを...
-
ACCESS ツリービューの作り方
-
ACCESS 商品毎の最新の単価を設...
-
Accessの実行時エラーについて
-
日付により変動する「単価」を...
-
Excel VBA ADODB
-
前月の取得について
-
テーブルの結合の仕方 MSAccess...
-
各部署、各チーム、個人ごとの...
-
アクセス フィールド名に変数...
-
【SQL】あるマスタのレコードに...
-
テーブルの正規化について
-
Excel/Access☆小売の顧客管理・...
-
UPDATE
-
ACCESSでクエリ作成時複数のフ...
-
アクセス★非課税、課税の合計金...
-
Access2003 vbaでの正規化
-
AS400にてサブファイルレコード...
-
Access サブフォームについて
おすすめ情報