こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Access 更新クエリについて

いつもお世話になっております。
今回もAccessについてご指南お願い致します。
ただいまAccess2007で顧客管理DB作成しておりそれは無事完成いたしました。
今回は、更新クエリについてお伺いしたいです。

クライアント様より、お客様の進捗状況データがエクセルで毎週送られてきます。
そのデータ型は毎週同じです。
顧客番号、お客様の現ステータス、申込状況、支払方法登録状況など、
1行ごとにお客様の情報が記載されています。

A B C D E
1顧客番号 ステータス 支払い 入会日 開始日
2S52134 利用OK コンビニ 2015/3/10 2015/3/15
3 …
4 …
5 …
といったデータです。

これを貼り付ける用のテーブルを作成しクエリで更新したい項目と紐付ける為の項目(今回は顧客番号)を出してきて、なおかつメインテーブルから更新したい項目をだしてきたクエリを作成しました。

更新用クエリで上記の二つのクエリを紐付けし、更新できるようになりました。


今までは上記でなんら問題なかったのですが、今回は更新データが2つ来ることになりました。
一つは他社利用だった新規のお客様のデータ、もうひとつは自社利用中のコース変更のお客様のデータです。
上記二つのデータはほぼ同じなのですが、新規データの方が項目が何個か多いのです。
毎回毎回自社利用のデータをコピペで新規お客様データに張り付ければ問題ないのですが、毎週の事で手間に思い、もうひとつ上記と同じようにテーブルを少し変えたもので更新クエリを組みました。

そうするとやはり、他社更新→自社更新、自社更新→他社更新どちらの順序で更新しても先に更新した方のデータが空白になってしまいます。
他社、自社共に更新する対象ものは同じものなので当然ですよね。。。

なので今回はテーブルにはったデータのみを更新するという方法をお伺いしたいです。

お前ばかだなあ、こういう方法もあるよって方も是非教えてください!!


分かりにくかったら本当に申し訳ありません。
ご教授の程何卒宜しくお願い致します。

投稿日時 - 2015-03-12 19:57:51

QNo.8934426

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

>そうするとやはり、他社更新→自社更新、自社更新→他社更新どちらの順序で更新しても先に更新した方のデータが空白になってしまいます。

よくよく見たら、「先に更新した方」が空白になるんですね。
後で更新した方で空白を上書きしているものかと思ってました。

メインテーブルの更新するフィールドをAとした場合、
新規客データとコース変更客データのAには空白はあるのでしょうか?

空白があるのであれば、Aを空白で上書きしてるのでしょう。
空白が無いのであれば、そもそも更新クエリが間違っているんだと思います。

サンプルでよいので、SQLを貼り付けて頂くと原因がわかると思いますよ。

投稿日時 - 2015-03-19 13:43:21

ANo.6

テーブルAとBで顧客が重複してないのなら、更新クエリAを実行した後に更新クエリBを実行したとしても、上書きされることは無いはずですが。。

投稿日時 - 2015-03-14 18:26:11

補足

それがされてしまうから困っているんですよね…
ご尽力いただきありがとうございました!

投稿日時 - 2015-03-19 13:25:48

ANo.5

クエリだとこんな感じです。

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2015-03-14 13:04:31

補足

詳しく画像まで乗せて頂いてありがとうございます。

支払方法は変動するのですが、
これだと「コンビニ支払」が更新されたのち
「クレジット払い」に変更されても更新されますでしょうか。

なおかつ、更新データAとBにどう顧客番号のお客様はいらっしゃいません。
どちらかにしかいらっしゃいません。

投稿日時 - 2015-03-14 15:41:29

ANo.4

度々すみません。
画像が小さすぎたのでもう一度。

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2015-03-14 13:03:02

ANo.3

画像が小さくて分かりづらいかもしれませんが、とりあえず更新するフィールドの条件に「Is Not Null」を指定して更新してみてください。

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2015-03-14 12:58:47

ANo.2

以下の図のようなイメージを持っているのですが。。
この場合、更新クエリAでテーブルAが更新され、更新クエリBでテーブルBが更新される。。という認識だったのですが、逆にメインテーブルの方を更新してるってことでしょうか?(だから二つ目の更新クエリで上書きされるって意味?)

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2015-03-14 12:09:58

補足

上記図のおっしゃる通りで御座います。

投稿日時 - 2015-03-14 15:37:01

ANo.1

この質問内容だとちょっと分かり辛いと思います。。
人のこと言えたものではありませんが(笑

その「今回は更新データが2つ来ることになりました。」っていうのは
例えば、一つ目の更新データは、

 ID フィールドA フィールドB フィールドC フィールドD

二つ目の更新データは

 ID フィールドB フィールドD フィールドE フィールドF

みたいな感じで、共通するものもあるし、それぞれで持ってるフィールド
があるってことでよろしいでしょうか。

で、これらをコピペして

 ID フィールドA フィールドB フィールドC フィールドD フィールドE フィールドF

って感じにしてるってことでしょうか。
※要するに両データのフィールドを揃える感じ。



>もうひとつ上記と同じようにテーブルを少し変えたもので更新クエリを組みました。

>そうするとやはり、他社更新→自社更新、自社更新→他社更新どちらの順序で更新しても先に更新した方のデータが>空白になってしまいます。
>他社、自社共に更新する対象ものは同じものなので当然ですよね。。。

ここの意味が分かりません。

投稿日時 - 2015-03-13 19:52:16

補足

回答ありがとうございます。

>要するに両データのフィールドを揃える感じ。
そういった認識で大丈夫です。

>もうひとつ上記と同じようにテーブルを少し変えたもので更新クエリを組みました。
2つ来る更新データを別物とあつかい、それぞれに対応するテーブルを作り、それぞれの更新クエリを作成致しました。

>そうするとやはり、他社更新→自社更新、自社更新→他社更新どちらの順序で更新しても先に更新した方のデータが>空白になってしまいます。
>他社、自社共に更新する対象ものは同じものなので当然ですよね。。。

これはもう当たり前のことだったので簡略に書いてしまいました、申し訳ありません。

一つ目の更新クエリを実行すると更新したいものを反映させますよね。
その後二つ目のクエリを実行するとこれもまた反映してくれるのですが
一度目に更新した分のデータは二つ目の更新クエリに使っているテーブルにはデータがない為
空で更新されてしまいますよね。

上記の質問文を簡潔に申し上げますと更新クエリで、テーブルに貼ったものだけのデータを更新する方法を教えてください。

2つある更新クエリはそれぞれ更新する対象のフィールドが同じの為
二つ目を更新するとどうしても一つ目に更新したデータが空白で上書きされてしまうのです。

分かりにくくて申し訳ございませんでした。

投稿日時 - 2015-03-14 10:45:05

あなたにオススメの質問