初めまして。閲覧ありがとうございます。
access2016、windows10で在庫管理システムを作っていますが、わからない部分があるので質問させて下さい。
SQLのupdateでT_単価マスタの更新日とT_入出庫滅失データの出庫日を比べ、T_入出庫滅失データの出庫日より小さいT_単価テーブルの更新日の最新を取ってきてT_入出庫滅失データのフィールド、単価参照日に数値を更新します。その際、T_単価マスタとT_入出庫滅失データのレコードにある会社商品名が一致しているものを比較します。
使うテーブル
CREATE TABLE T_単価マスタ(
ID COUNTER PRIMARY KEY,
会社名 CHAR(255),
商品名 CHAR(255),
単価 INT,
更新日 DATE,
会社商品名 CHAR(255)
);
CREATE TABLE T_入出庫滅失データ(
ID COUNTER PRIMARY KEY,
商品名 CHAR(255),
入庫日 DATE,
出庫日 DATE,
滅失日 DATA,
入庫数 INT,
出庫数 INT,
滅失数 INT,
会社名 CHAR(255),
単価 INT,
更新日 DATE,
単価参照日 DATE,
会社商品名 CHAR(255)
);
更新クエリSQLコード
UPDATE T_入出庫滅失データ SET T_入出庫滅失データ.単価参照日 = DMax("更新日","T_単価マスタ","[更新日]<=#" & Format([出庫日],"yyyy/mm/dd") & "#" And "会社商品名 = '[T_単価マスタ]![会社商品名]'");
例
T_単価マスタ 2019/8/1
T_入出庫滅失データ 2019/9/1
update後→T_入出庫滅失データ 単価参照日 20190801
T_単価マスタ 2019/10/1
Bテーブル 2019/11/1
update後→T_入出庫滅失データ 20191001
しかし実際は
T_単価マスタ 2019/8/1
T_入出庫滅失データ 2019/9/1
update後→T_入出庫滅失データ 20191001
T_単価マスタ 2019/10/1
T_入出庫滅失データ 2019/11/1
update後→T_入出庫滅失データ 20191001
となってしまいます。
原因として考えられるのは
①日付型を直接比較できないので、formatで文字列型になおして比較しているがそれがうまくいっていない
②文法ミス
です。
お力添えよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー