Mengakses Pangkalan Data SQL dalam Excel-VBA: Menyelesaikan Masalah Rentetan Sambungan
Dalam mengakses pangkalan data SQL daripada Excel-VBA, pengguna mungkin menghadapi perkara berikut ralat masa jalan: "Operasi tidak dibenarkan apabila objek ditutup." apabila cuba menyalin data daripada set rekod ke julat Excel. Ralat ini selalunya menunjukkan masalah dengan rentetan sambungan atau keadaan set rekod.
Satu potensi punca isu ini ialah spesifikasi rentetan sambungan yang salah. Pastikan semua parameter yang diperlukan disediakan, termasuk nama pangkalan data dan sebarang kelayakan yang diperlukan. Rentetan sambungan yang disediakan dalam coretan kod asal tiada parameter Katalog Permulaan, yang menentukan pangkalan data untuk disambungkan.
Dengan menambahkan parameter Katalog Permulaan pada rentetan sambungan dan menggunakan kaedah yang lebih mudah untuk melaksanakan pernyataan SQL secara langsung (berbanding dengan objek ADODB.Command), isu itu boleh diselesaikan. Kod yang disemak di bawah termasuk pengubahsuaian yang diperlukan:
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 Excecute 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
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Operasi tidak dibenarkan apabila objek ditutup' Apabila Mengakses Pangkalan Data SQL dalam Excel-VBA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!