- 締切済み
Accessプロジェクト ストアドプロシージャによるデータ更新
Access2003 Accessプロジェクトのストアドプロシージャでテーブルを更新する処理を作りたいのですが・・・。 内容は、テーブルAにある項目「更新区分」を "0" から "1" に更新します。ただし更新する条件として、テーブルBに登録されている、全てのロットNoと、テーブルAのロットNoが一致するものだけです。 WHERE条件に・・・ WHERE テーブルA.LotNo = テーブルB.LotNo とすると、「ADOエラー:列のプレフィックステーブルBは、テーブル名と一致しないか、クエリ内の別名と一致しません」となります。 初歩的な質問ではずかしいですが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- O_cyan
- ベストアンサー率59% (745/1260)
テーブルBもしくはテーブルB.LotNoが取得できていないのではないでしょうか。 UPDATE dbo.テーブルA, dbo.テーブルB SET dbo.テーブルA.更新区分 = 1 WHERE (((dbo.テーブルB.LotNo)=dbo.テーブルA.LotNo)); か UPDATE dbo.テーブルA INNER JOIN A ON dbo.テーブルB.LotNo = dbo.テーブルA.LotNo SET dbo.テーブルA.更新区分 = 1; で回避できると思うのですが。
- ipsum11
- ベストアンサー率21% (55/251)
>WHERE テーブルA.LotNo = テーブルB.LotNo が原因のような書き方をしていますが、他の条件などはあっていますか?これだけでは回答も限られてきます。 例えばSQL全文を載せてくれればもう少し回答できるのではないでしょうか。
補足
回答ありがとうございいます。 SQL文は・・・ UPDATE dbo.テーブルA SET 更新区分 = 1 WHERE (LotNo = dbo.テーブルB.LotNo) Accessプロジェクトのストアドプロシージャのデザイナ で作っています。エラーがあるためSQLの全文を見ることができません。
お礼
回答ありがとうございます。 今、出先から回答を拝見しています。 戻り次第試してみます。 取り急ぎ御礼まで。
補足
ご連絡が遅れて申し訳ありません。 試してみたのですが・・・ 前者は、UPDATE句に2つのテーブルを記述するとエラーになります。 後者は、INNER句の行でエラーが出ます。 今朝から色々試しているのですが・・・。