Rumah >pangkalan data >tutorial mysql >Mengapa Kod Excel-VBA Saya Mendapat Ralat '3704: Operasi tidak dibenarkan apabila objek ditutup' Semasa Menyalin Data daripada Set Rekod SQL?

Mengapa Kod Excel-VBA Saya Mendapat Ralat '3704: Operasi tidak dibenarkan apabila objek ditutup' Semasa Menyalin Data daripada Set Rekod SQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-30 20:48:11376semak imbas

Why Does My Excel-VBA Code Get a

Pengendalian Ralat dalam Excel-VBA untuk Akses Pangkalan Data SQL

Semasa mengakses pangkalan data SQL daripada Excel-VBA, isu biasa timbul apabila mencuba untuk menyalin data daripada set rekod ke helaian Excel, mengakibatkan ralat masa jalan 3704: "Operasi tidak dibenarkan apabila objek ditutup."

Punca Punca:
Mesej ralat mencadangkan set rekod (objMyRecordset) yang dirujuk dalam kaedah "CopyFromRecordset" telah ditutup. Ini mungkin berlaku jika sambungan kepada pangkalan data hilang atau jika set rekod ditutup secara eksplisit sebelum waktunya.

Penyelesaian:
Untuk menangani isu ini, pastikan sambungan pangkalan data stabil dan set rekod kekal terbuka sepanjang proses mendapatkan data. Berikut ialah kod VBA yang disemak semula:

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

    'Close recordset and connection (optional, to ensure no open object handles)
        objMyRecordset.Close
        objMyConn.Close
End Sub

Awas:
Adalah penting untuk ambil perhatian bahawa kaedah "Tutup" (untuk kedua-dua set rekod dan objek sambungan) harus digunakan selepas data -proses pencarian selesai untuk mengelakkan kemungkinan ralat. Walau bagaimanapun, tidak semestinya untuk menutup objek ini secara eksplisit, kerana objek ini harus ditutup secara automatik apabila subrutin keluar.

Atas ialah kandungan terperinci Mengapa Kod Excel-VBA Saya Mendapat Ralat '3704: Operasi tidak dibenarkan apabila objek ditutup' Semasa Menyalin Data daripada Set Rekod SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn