ホームページ > データベース > mysql チュートリアル > SQL データベースにアクセスするときに Excel VBA で「実行時エラー 3704: オブジェクトが閉じられているときは操作は許可されません」を修正する方法は?

SQL データベースにアクセスするときに Excel VBA で「実行時エラー 3704: オブジェクトが閉じられているときは操作は許可されません」を修正する方法は?

Mary-Kate Olsen
リリース: 2025-01-01 01:06:11
オリジナル
397 人が閲覧しました

How to Fix

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

「実行時エラー 3704: 操作」に関するクエリへの応答VBA を使用して SQL データベースから Excel シートにデータをコピーしているときに、オブジェクトが閉じられているときは許可されません」というエラーが発生した場合、提供された回答は示唆しています次の変更:

変更されたコード スニペット:

Sub GetDataFromADO()
    'Declare variables'
        Set objMyConn = New ADODB.Connection
        Set objMyRecordset = New ADODB.Recordset
        Dim strSQL As String

    'Open Connection'
        objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;"
        objMyConn.Open

    'Set and Execute SQL Command'
        strSQL = "select * from myTable"

    'Open Recordset'
        Set objMyRecordset.ActiveConnection = objMyConn
        objMyRecordset.Open strSQL

    'Copy Data to Excel'
        ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)

End Sub
ログイン後にコピー

行われた変更:

  • 初期カタログが追加されました: 接続文字列が「Initial」で初期化されるようになりました。
  • 簡易 SQL コマンド: ADODB.Command を使用する代わりに、単純な SQL ステートメント (strSQL) が作成され、レコードセットを開くために直接使用されます。
  • フィールド割り当ての簡略化:フィールド値の割り当てに使用される「Fields["FieldName].Value」形式が削除されました。

これらの変更を実装することで、レコードセットが閉じられる問題が解決され、データの取得とコピーが正常に行われるようになります。 Excel シート。

以上がSQL データベースにアクセスするときに Excel VBA で「実行時エラー 3704: オブジェクトが閉じられているときは操作は許可されません」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート