Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


327 / 2272 ツリー ←次へ | 前へ→

【12120】インポートについて みき 12/2/1(水) 23:18 質問[未読]
【12134】Re:インポートについて ちん 12/2/5(日) 16:39 発言[未読]

【12120】インポートについて
質問  みき  - 12/2/1(水) 23:18 -

引用なし
パスワード
   Accessでインポートの上書きを行いたく思っているのですが、
うまく行きません。
どなたかご教示頂けますでしょうか。
困っているのは下記の2点になります。

1つ目
フォーム1に「日報のインポート」と言うコマンドボタンを作成し、
該当ファイルを選択し日報データをインポート。


2つ目
日報データの上書きが出来ません。
普通にインポートしたら同一IDが重複してレコードがあり、どちらが最新なのか分かりません。。。。
日報データ、T_取込用日報データの2つのテーブルを作成し、
更新クエリで更新出来るようにしたのですが、
うまく更新がかかりません。。。
何かよい方法はありますでしょうか。

イメージとしまして、1つ目のインポートを行うと、2つ目の上書き(更新)が自動的にできるような
仕組みにしたいと考えております。

分かりづらく申し訳ございませんが、良い方法をご教示頂きたく思います。
何卒よろしくお願いいたします。

【12134】Re:インポートについて
発言  ちん  - 12/2/5(日) 16:39 -

引用なし
パスワード
   ▼みき さん:こんにちわ、ちんといいます。
日がたってしまい、解決されてるかもしれませんが。
クエリーだけで、処理したいのであれば、参考までに記述します。
やり方は、ちょっと邪道かもしれないので。本来であれば、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.まで作成してください。

説明不足かもしれませんが、クエリーでやる場合の方法として。
以上、参考までに・・・

327 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free