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?
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!