VBA コードを使用して SQL データベースから Excel シートにデータを取得しようとすると、次のような問題が発生する場合があります。実行時エラー 3704。閉じられたオブジェクトに対する無効な操作を示します。これは通常、データがレコードセットから Excel シートにコピーされるステップ中に発生します。
このエラーの考えられる原因の 1 つは接続文字列にあります。接続文字列に、アクセスするデータベースの名前を指定する Initial Catalog パラメーターが含まれていることを確認してください。以下は、パラメーターを含む更新された接続文字列です:
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;"
もう 1 つの問題は、SQL コマンドを指定するときに追加の間接層の使用である可能性があります。コードを簡素化し、エラーを回避するには、次のように SQL ステートメント文字列を直接使用できます:
strSQL = "select * from myTable"
次に、SQL ステートメント文字列をコマンド テキストとして使用してレコードセットを開きます:
objMyRecordset.Open strSQL
これらの潜在的な問題に対処し、接続文字列が完全で SQL コマンドが正しく実行されていることを確認すると、次のコマンドを使用して SQL データベースから Excel シートにデータを正常に取得できるようになります。 VBA。
以上がExcel VBA で SQL データベースにアクセスするとランタイム エラー 3704 が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。