|
▼みき さん:こんにちわ、ちんといいます。
日がたってしまい、解決されてるかもしれませんが。
クエリーだけで、処理したいのであれば、参考までに記述します。
やり方は、ちょっと邪道かもしれないので。本来であれば、VBAで行うべき処理ですが、わたくしはACCESSが得意でないです。
4つのクエリーを作成する前に、T_取込用日報データに項目を一つ追加ください。
T_取込用日報データに、FLG項目を整数で追加ください。
この項目に、新規データの場合1 、既存データの場合2 を設定します。
1.新規(追加)データの更新クエリーで、日報データに存在しないかを確認します。
UPDATE T_取込用日報データ SET T_取込用日報データ.FLG = 1
WHERE 0 = (SELECT COUNT(*) FROM 日報データ WHERE T_取込用日報データ.ID=日報データ.ID);
※WHERE区で0=・・・ は、同一のデータ0件と言う意味のチェックです。
0件の場合、T_取込用日報データ.FLGに1を更新します。(新規データ)
2.更新データの更新クエリーで、日報データに同一のデータがあるかを確認します。
UPDATE T_取込用日報データ SET T_取込用日報データ.FLG = 2
WHERE 0 < (SELECT COUNT(*) FROM 日報データ WHERE T_取込用日報データ.ID=日報データ.ID);
※WHERE区で0<・・・ は、同一のデータ1件以上発見と言う意味のチェックです。
1件以上の場合、T_取込用日報データ.FLGに2を更新します。(更新データ)
3.追加クエリーで、1.で処理でT_取込用日報データ.FLG=1の場合、追加します。
INSERT INTO 日報データ ( ID, データ1, データ2, データ3 )
SELECT T_取込用日報データ.ID, T_取込用日報データ.データ1, T_取込用日報データ.データ2, T_取込用日報データ.データ3
FROM T_取込用日報データ
WHERE T_取込用日報データ.FLG=1;
4.更新クエリーで、2.処理でT_取込用日報データ.FLG=2の場合、更新します。
UPDATE テーブル1, テーブル2 SET 日報データ.データ1 = T_取込用日報データ.データ1, 日報データ.データ2 = T_取込用日報データ.データ2, 日報データ.データ3 = T_取込用日報データ.データ3
WHERE T_取込用日報データ.FLG=2 and T_取込用日報データ.ID = 日報データ.ID
クエリーの作成方法は、
クエリー新規作成->何でも良いので、テーブルを1つ選択し、
デザインビュー -> SQLビューに切り替え、
私が記述した、SQL文をコピーし、SQLビューへ貼り付けてください。
あとは、日報データの項目と、T_取込用日報データの項目をセットして下さい。
※ここで記述した、.データ1,データ2,データ3 を本来の項目に変更ください。
※デザインビューに切り替えて、項目セットしてもいいです。
クエリーは、4つありますので、同様に1.〜4.まで作成してください。
説明不足かもしれませんが、クエリーでやる場合の方法として。
以上、参考までに・・・
|
|