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

解決済みの質問

Access2010でUPDATEできない

ちょっと行き詰まってしまいました。

あるテーブルを更新しようと、以下のようなVBAを作成し実行しました。
しかし、エラーが出てしまいます。

【テーブル1】
ID,予定年,予定月,予定日,実行年,実行月,実行日,区分

ID、予定年・月・日にはデータが入っています。
区分にはデータが入ってる場合と入ってない場合があります。
区分にデータが入っていると、実行年・月・日にはデータが入っています。

【コード】
strSQL = "UPDATE テーブル1 SET 実行年 = 予定年, 実行月 = 予定月, 実行日 = 予定日 WHERE 区分 Is Null"
DoCmd.RunSQL strSQL

【エラー】
Microsoft Visual Basicエラーダイアログが表示され、
「実行時エラー '3001' 引数が無効です。」と出ます。

クエリで同じものを作成しても同様のエラーが出ますが、SQL自体間違っているのでしょうか。
煮詰まっているのか、何がダメなのか判らない状況です。

もし判る方がいましたら、ご教授お願いします。

投稿日時 - 2012-05-18 16:26:51

QNo.7482587

困ってます

質問者が選んだベストアンサー

ちょっと見では大丈夫そうでしたが、自信が無かったので
似たようなのを作成して検証してみました。
すんなりと実行されました。

Googleオジサンに聞いたところ、もしかしてコレ?
http://www.free-style.biz/lifediary/2012/04/access2007sp3.html
関連記事(リンク先)も含めると2010でも容疑濃厚かもしれない。
テーブルを作り直せば解決するらしいので
一旦CSVファイルにでも書き出してテーブル削除しインポートか
リンク先のMS社の解決方法でなんとかなるかも?
Access2010になってから、少し疑心暗鬼のこの頃。
ご参考まで。

投稿日時 - 2012-05-18 22:47:16

お礼

まさにご指摘の関連記事がビンゴのようでした!

テーブルをXMLエクスポートして、インポートし直したものを同様のSQLで実行したところ、処理ができました。

ありがとうございました。

投稿日時 - 2012-05-21 14:47:07

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

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

回答(2)

ANo.1

Access2000 で試してみました。
strSQL = "UPDATE テーブル1 SET 実行年=[予定年],実行月=[予定月],[実行日=[予定日] WHERE 区分 Is Null WITH OWNERACCESS OPTION"
としたらどうでしょう

投稿日時 - 2012-05-18 20:01:37

お礼

回答有り難うございます。

WITH OWNERACCESS OPTION では同様のエラーが出てしまいました。
しかしこの方法は知りませんでしたので、大変勉強になりました。

有り難うございました。

投稿日時 - 2012-05-21 14:45:32

あなたにオススメの質問