• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Access2002】VBAでのSQL文)

【Access2002】VBAでのレコード追加のSQL文の実行方法について

このQ&Aのポイント
  • AccessVBAでレコード追加のためのSQL文を作成し、DoCmdで実行させる処理を行おうとしています。
  • 作成されたSQL文をDoCmd.RunSQLで実行しても、追加されない問題が発生しています。
  • クエリ_新規作成(デザイン)で同じ内容のSQL文を実行すると、追加されることが確認されています。VBAで実行させる場合に何か制限があるのか、解決策を教えてください。

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

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

A, B, C, D, E, F, G, H, I というフィールドを持つ T_マスタ というテーブルを作り、 romiromi さんがご提示したSQLでDocmd.RunSQLしたら 追加できました。 ただ、テーブルを作る時に主キー(インデックスの設定:重複なし)の設定はしませんでしたけど・・・。

romiromi
質問者

お礼

えっ、追加されました? 追加する値Aa~Ii(変数)はString型で宣言しているのですが これが問題なのでしょうか…。 それとも主キーの問題でしょうか・・・。 ご回答ありがとうございました。

romiromi
質問者

補足

> テーブルを作る時に主キー(インデックスの設定:重複なし)の設定はしませんでしたけど・・・。 Aは主キーで重複なしの設定にしています。

その他の回答 (2)

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.3

> 追加する値Aa~Ii(変数)はString型で宣言しているのですが あ、そゆことだったんですね。 でしたら、今お書きになっているプログラムコードのすべてと 追加したいテーブルの構造をご提示され、何がしたいかを もう少し詳しくお書きになるとよいかもしれません。

romiromi
質問者

お礼

お礼がたいへん遅くなり申し訳ありません。 前回のご回答から、主キー以外の項目に (インデックスの設定:重複なし)の設定をしており、これが いけませんでした。 プロパティを変更しましたら追加できました。 どうもありがとうございました。

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

INSERT INTO T_マスタ ( A, B, C, D, E, F, G, H, I ) VALUE ('Aa','Bb','Cc','Dd','Ee','Ff','Gg','使用しません','Ii'); 一番に思いつくのが上のSQL文だったのですがー。。。 VALUEでなく、SELECTを使い理由は。。。?(汗 まだSQLお勉強中なのでなんともいえませんけどね。。。 http://www.geocities.jp/cbc_vbnet/Sql/action.html#update http://www.mahoutsukaino.com/ac/ac2002/vba/vba14/v14.htm 役立つかどうか不明ですが、参考までにアド貼り付け。

romiromi
質問者

お礼

早速ありがとうございます。 VALUESを使っても同じなんです、エラーメッセージは でないものの、追加されない。 URL拝見してみます、ありがとうございました。

関連するQ&A

専門家に質問してみよう