• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス ADO)

Access ADOでのSQLステートメントエラーの原因と解決方法

このQ&Aのポイント
  • AccessのADODB.Connectionオブジェクトを使用してSQLステートメントを実行する際に、「実行時エラー-2147217900(80040e14)」が発生する問題があります。
  • このエラーは、SQLステートメントが正しくない場合に発生します。具体的には、Delete、Insert、Procedure、Select、またはUpdate以外のキーワードを使用している場合や、存在しないテーブルやオブジェクトにアクセスしようとしている場合に発生します。
  • このエラーが発生する場合、以下の点を確認する必要があります。まず、使用しているSQLステートメントが正しいかどうかを確認します。また、アクセスしようとしているテーブルまたはオブジェクトが存在するかどうかも確認します。さらに、使用しているADODB.Connectionオブジェクトが正しく設定されているかどうかも確認する必要があります。

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.1

rs.Open "Tテーブル", cn, adOpenStatic, adLockPessimistic, adCmdTable ではいかがでしょうか?

zjvacluwpav
質問者

お礼

回答頂きありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問に書いているコードは、エラーを聞いているにしては、省略しすぎじゃない。 レコードを処理し始めるところまでぐらい、全行を補足掲示すべきと思う。差し障るところは工夫して記述。 プログラムでは1文字違いでも、エラーになる場合があるし、データのあり様もエラーに影響するよ。その怖さを知ることが大切と思う。

zjvacluwpav
質問者

お礼

回答頂きありがとうございました。

  • rasuka555
  • ベストアンサー率49% (175/352)
回答No.2

省略しておられるのかもですが、まずは定型句ではありますが、 宣言部である以下のものは入っておりますか? Dim cn As ADODB.Connection Dim rs As ADODB.Recordset もう1つ、おそらくこちらが原因ですがrsが何も定義されておりません。 その為、rsをRecordsetオブジェクトではなく、Connection オブジェクトとして処理しようとしているのでしょう。 Set rs = New ADODB.Recordset を挿入すれば動くように見受けられます。

zjvacluwpav
質問者

お礼

回答頂きありがとうございました。