- ベストアンサー
【Access2002】VBAでのレコード追加のSQL文の実行方法について
- AccessVBAでレコード追加のためのSQL文を作成し、DoCmdで実行させる処理を行おうとしています。
- 作成されたSQL文をDoCmd.RunSQLで実行しても、追加されない問題が発生しています。
- クエリ_新規作成(デザイン)で同じ内容のSQL文を実行すると、追加されることが確認されています。VBAで実行させる場合に何か制限があるのか、解決策を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
A, B, C, D, E, F, G, H, I というフィールドを持つ T_マスタ というテーブルを作り、 romiromi さんがご提示したSQLでDocmd.RunSQLしたら 追加できました。 ただ、テーブルを作る時に主キー(インデックスの設定:重複なし)の設定はしませんでしたけど・・・。
その他の回答 (2)
- gadd3
- ベストアンサー率46% (211/451)
> 追加する値Aa~Ii(変数)はString型で宣言しているのですが あ、そゆことだったんですね。 でしたら、今お書きになっているプログラムコードのすべてと 追加したいテーブルの構造をご提示され、何がしたいかを もう少し詳しくお書きになるとよいかもしれません。
お礼
お礼がたいへん遅くなり申し訳ありません。 前回のご回答から、主キー以外の項目に (インデックスの設定:重複なし)の設定をしており、これが いけませんでした。 プロパティを変更しましたら追加できました。 どうもありがとうございました。
- STICKY2006
- ベストアンサー率29% (1536/5269)
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 役立つかどうか不明ですが、参考までにアド貼り付け。
お礼
早速ありがとうございます。 VALUESを使っても同じなんです、エラーメッセージは でないものの、追加されない。 URL拝見してみます、ありがとうございました。
お礼
えっ、追加されました? 追加する値Aa~Ii(変数)はString型で宣言しているのですが これが問題なのでしょうか…。 それとも主キーの問題でしょうか・・・。 ご回答ありがとうございました。
補足
> テーブルを作る時に主キー(インデックスの設定:重複なし)の設定はしませんでしたけど・・・。 Aは主キーで重複なしの設定にしています。