ホームページ >データベース >mysql チュートリアル >Excel VBA で SQL データベースにアクセスするときに発生するランタイム エラー 3704 を修正する方法

Excel VBA で SQL データベースにアクセスするときに発生するランタイム エラー 3704 を修正する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-04 08:27:39315ブラウズ

How to Fix Run-time Error 3704 When Accessing SQL Databases in Excel VBA?

Excel-VBA での SQL データベースへのアクセス: 実行時エラー 3704 の解決

VBA コードを使用して SQL データベースからデータにアクセスしようとすると、エラーが発生する場合があります。レコードセットから Excel にデータをコピーします。具体的には、レコードセット オブジェクトが閉じられると、「実行時エラー 3704: オブジェクトが閉じられているときは操作は許可されません」というエラーが発生します。

この問題を解決するには:

  1. データベースのアクセス可能性を確認します: データベースが VBA からアクセスできることを確認します。データベースが実行中であること、接続文字列が正しいこと、およびユーザーがデータベースにアクセスするために必要な権限を持っていることを確認してください。
  2. 接続文字列に初期カタログを追加します: 含める接続文字列を変更します。データベース名を表す初期カタログ。例:
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;"
  1. レコードセットを直接開きます: ADODB.Command オブジェクトを使用する代わりに、SQL ステートメントを使用してレコードセットを直接開くことができます。更新されたコード スニペットは次のとおりです:
Const adCmdText As Long = 1
Dim strSQL As String

... // Other code above

' Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
strSQL = "select * from myTable"
objMyRecordset.Open strSQL            

... // Rest of the code below

これらの調整を行うことで、実行時エラー 3704 が発生することなく、VBA を使用して SQL データベースから Excel にデータを正常にコピーできるようになります。

以上がExcel VBA で SQL データベースにアクセスするときに発生するランタイム エラー 3704 を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。