私はACCESS初心者です。
会社用で商品受注履歴を閲覧出来る仕組みをACCESSにて、運用しております。
商品価格変更時の設定方法について質問させて下さい。
以前こちらでの類似質問履歴を参照させて頂き、下記のテーブルを作成しました。
テーブル名:フィールド内容
(1)商品マスター:商品ID、商品名
(2)価格マスター:商品ID、商品名、価格(単価)、適用開始日、適用終了日
(3)受注マスター:商品ID、商品名、販売日、数量
クエリ名:フィールド内容
(4)受注閲覧:受注ID、商品名、価格(単価)、数量、販売日
使用方法:
(4)受注閲覧に、商品名、販売日(例:2007/7/1~2007/8/1)を入力し、
(3)受注マスターから、その期間に販売日設定された注文情報、およびその期間の商品価格を抽出する。
商品の価格変更時は、(2)価格マスターで商品ID・価格を新規入力しますが、
旧新価格とも商品名(主キー)が同じな為、(4)受注閲覧に販売日を入力した際、両方とも表示されてしまいます。
この時、「(2)価格マスター適用期間」の商品価格のみを引っ張り、(4)受注閲覧に表示出来る様にしたいのです。
色々と調べましたが、具体的な抽出条件が分からず、大変困っております。
是非アドバイスをお願い致します。
No.1
- 回答日時:
>商品の価格変更時は、(2)価格マスターで商品ID・価格を新規入力しますが、
>旧新価格とも商品名(主キー)が同じな為、・・・
本当に主キーは「商品名」ですか?
「商品ID」の間違いではないですか?
でなければ、主キーが一意とならない(重複する)ため価格マスターのレコード保存ができないのでは?
また商品名を主キーとするならば、商品マスターと価格マスターを分ける必要がないのでは?
さらにIDを設定する意味がないのでは?
以下は、商品IDが主キーとしての参考意見です。
適用期間が重複する、同一商品異価格が存在するのであれば、
受注閲覧クエリに、商品IDを加え、抽出条件に以下を入力します。
In(SELECT 商品ID FROM 価格マスター WHERE 適用開始日>=#2007/7/1# And 適用終了日<=#2007/8/1)
なお、日付は例示された販売日の期間を入れていますので、期間が変わればその期間を入れてください。
適用期間が重複する、同一商品異価格が存在しないのであれば、従来運用で結果が出るはずです。
個人的には商品名が主キーであるならば、その構造から見直す必要があるのではと考えます。
ただ、他の方からよい回答があるかもしれませんのであしからず。
御回答有難うございます。
申し訳ございません、主キーは「商品ID」の間違いでした。
丁寧なアドバイスを頂き、誠に有難うございました。
今回質問させて頂いた件に関しましては、
前項の方法にて解決致しました。
No.2ベストアンサー
- 回答日時:
このテーブル構造を提案したという回答には単価の参照方法も載っていたのでは・・・
受注閲覧クエリは受注と価格マスタを商品IDで結合したクエリにし
販売日の抽出条件欄に
Between 適用開始日 and 適用終了日
と書きます。これで販売日の単価を取ってこれます
なおテーブルにはまだ問題があります下のように変えてください
(1)商品マスター:商品ID、商品名
(2)価格履歴:商品ID、価格(単価)、適用開始日、適用終了日
(3)受注:商品ID、販売日、数量
マスタは半固定的な基本データを集めたテーブルにつけます
履歴や受注のようなものには使いません
特に受注は取引記録ですからマスタと反対に位置するトランザクションテーブルです
商品マスタがあるときそれを参照するテーブルには商品IDのみを
参照キーとしておきます
商品名を取り込んではいけません
早速のアドバイスを頂き、有難うございます。
>受注閲覧クエリは受注と価格マスタを商品IDで結合したクエリにし
>販売日の抽出条件欄に
>Between 適用開始日 and 適用終了日と書きます。
この方法で希望通りの仕組みを作る事が出来ました。
行き詰っていたので、本当に助かりました!
有難うございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Visual Basic(VBA) VBAで質問があります 1 2022/10/19 10:32
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- Amazon アマゾン 7 2022/06/11 11:03
- その他(買い物・ショッピング) 商品に印字してあるバーコードについて 3 2022/08/26 10:42
- Excel(エクセル) Excel 関数 vlookupなどの使い方について質問です。 シート1に品番、商品名、単価、発注条 6 2022/06/15 19:16
- その他(買い物・ショッピング) 商品に印字してあるバーコードについて 4 2022/09/25 14:12
- スーパー・コンビニ 一斉値上 スーパーの食料品 値上や単価の仕組みは? 4 2022/06/01 16:18
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
ACCESS 商品毎の最新の単価を設定するには?
その他(Microsoft Office)
-
Access2013で商品に複数の単価があり予定表には該当する単価を代入する方法はあるでしょうか?
その他(データベース)
-
ACCESS 一番最新の日付の金額を出したいのですが・・
その他(データベース)
-
-
4
ACCESS 売上管理 価格改定について
その他(データベース)
-
5
最新の日付とその金額をクエリー抽出したい(access)
その他(データベース)
-
6
Accessで更新履歴情報を保存(表示)する方法を教えてください。
Access(アクセス)
-
7
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
8
アクセスで新しいレコードの追加ができません
Access(アクセス)
-
9
アクセス レコードセットを更新できません
その他(データベース)
-
10
Access サブフォームでの選択行の取得
その他(データベース)
-
11
日付により変動する「単価」を取得するSQLを教えてください
PostgreSQL
-
12
accessで2つ以上のフォームを起動時に表示する方法
Access(アクセス)
-
13
Excelで見やすい商品価格の変動表を作りたい
Excel(エクセル)
-
14
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
15
access2013 フォームで計算した値をテーブルに代入したい
Access(アクセス)
-
16
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
-
17
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
accessでの請求管理について
-
accessでのフォームの連携について
-
フィールド名が取得したい
-
Accessフォーム全レコードをPDF...
-
請求先
-
アクセスクエリの計算
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Oracle 2つのDate型の値の差を...
-
Accessでテーブルの値をテキス...
-
FROM の中で CASE を使えるでし...
-
Access テキスト型に対する指定...
-
作番ってどういう意味でしょうか?
-
IT用語について質問です。 以前...
-
Accessでテーブル名やクエリ名...
-
Accessのクエリでデータの入力...
-
BLOB型のPDF出力の方法
-
APN設定について教えていただけ...
-
データベースの1要素に複数デー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるフィールドの最大値を条件...
-
usingの意味がわからないのですが
-
Accessフォーム全レコードをPDF...
-
Accessの帳票フォームで重複デ...
-
Access2021 「ISNULL関数には引...
-
MS ACCESS 商品価格変更時の該...
-
アクセスのテーブルを分ける理...
-
accessでの請求管理について
-
ACCESS VBA クエリを開く
-
【Accessクエリ】存在しないデ...
-
accessでのフォームの連携について
-
SQL EXISTS演算子について
-
accessについて
-
曜日を表す項目
-
フィールド名が取得したい
-
Accessでクエリの作成、多対1対...
-
Accessについて(DLOOKUP関数、...
-
集計結果を別テーブルに更新ク...
-
Excelで重複する情報に番号を付...
-
正規化すると遅くなるというの...
おすすめ情報