No26709.SQLで複数条件のデータ更新
| タイトル | : SQLで複数条件のデータ更新 |
| 記事No | : 26709 |
| 投稿日 | : 2004/08/05(Thu) 11:24 |
| 投稿者 | : ながなが |
OS:xp Access Version:2003
いつもお世話になっています!
2つの条件に合った、データを更新しようとしています。 テーブル2にあるデータと同じものがテーブル1で見つかった場合、 テーブル1のフラグ項目を1に変更するというものです。 条件としては、伝番親と伝番子がキーになっているので、 それで抽出できたものを更新しようと思います。
以下のプロシジャーを記入しましたが、エラーになります。 副問い合わせは、複数回数の値、複数件のデータを戻す場合エラーとなるそうですが、 それ以上どう修正すればいいのか、わかりません。
sql = "UPDATE テーブル1 SET フラグ = 1 "_ & "WHERE テーブル1.伝番親 = (SELECT テーブル2.伝番親 FROM テーブル2) AND " _ & "テーブル1.伝番子 = (SELECT テーブル2.伝番子 FROM テーブル2)" CurrentProject.Connection.Execute sql
すみませんが、アドバイスよろしくお願いします_(_^_)_
|
| タイトル | : Re: SQLで複数条件のデータ更新 |
| 記事No | : 26712 |
| 投稿日 | : 2004/08/05(Thu) 11:50 |
| 投稿者 | : Tkwan |
> すみませんが、アドバイスよろしくお願いします_(_^_)_
SQlはあまり得意ではないので、ADOで rs1でテーブル1を、rs2でテーブル2を開き、
Do Until rs2.EOF rs1.Filter = "伝番親 = " & rs2.伝番親 & " AND 伝番子 = " & rs2.伝番子 Do Until rs1.EOF rs1.フラグ=1 rs1.Update rs1.MoveNext Loop rs2.MoveNext Loop
|
| タイトル | : Re: SQLで複数条件のデータ更新 |
| 記事No | : 26713 |
| 投稿日 | : 2004/08/05(Thu) 11:54 |
| 投稿者 | : hatena |
Inner Join を使えばいいかと思います。
ただし、SQLリファレンスのヘルプの記述例はまちがっているので注意してください。
UPDATE テーブル1 SET フラグ = 1 _ WHERE テーブル1 INNER JOIN テーブル2 ON テーブル1.伝番親 = テーブル2.伝番親 AND テーブル1.伝番子 = テーブル2.伝番子
|
| タイトル | : Re^2: SQLで複数条件のデータ更新 |
| 記事No | : 26719 |
| 投稿日 | : 2004/08/05(Thu) 14:32 |
| 投稿者 | : ながなが |
Tkwanさん、hatenaさんこんにちわ! お返事ありがとうございます_(_^_)_ Tkwanさんので、できそうですが(最終手段で使わせていただきます。)、 一応SQLでできるなら知ってみたい、ということでhatenaさんのように 記述してみました。 しかし、エラーが発生してしまいます。
sql = "UPDATE テーブル1 SET フラグ = 1 " _ & "WHERE テーブル1 INNER JOIN テーブル2 " _ & "ON テーブル1.伝番親 = テーブル2.伝番親 AND "_ & "テーブル1.伝番子 = テーブル2.伝番子" CurrentProject.Connection.Execute sql
↑「クエリ式の構文エラー、演算子がありません。」のエラーメッセージが出てしまいますが。 何か原因がわかりますか?
|
| タイトル | : Re^3: SQLで複数条件のデータ更新 |
| 記事No | : 26722 |
| 投稿日 | : 2004/08/05(Thu) 14:59 |
| 投稿者 | : hatena |
ごめんなさい。ぽけてました。 WHERE句にINNER JOIN は記述できませんね。
UPDATE テーブル1 INNER JOIN テーブル2 ON (テーブル1.伝番子 = テーブル2.伝番子) AND (テーブル1.伝番親 = テーブル2.伝番親) SET テーブル1.フラグ = 1
ですね。
|
| タイトル | : Re^4: SQLで複数条件のデータ更新 |
| 記事No | : 26726 |
| 投稿日 | : 2004/08/05(Thu) 16:34 |
| 投稿者 | : ながなが |
hatenaさん!完璧です!おかげさまでできましたヽ(^o^)丿うれしい!!
ほんと助かりました。ありがとうございました_(_^_)_
※()カッコがある、ない、でエラーになったりもするのですね。 ()の大切さもわかった今回でした。
|
このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています

|