在Excel-VBA 中存取SQL 資料庫:連接字串故障排除
從Excel-VBA 存取SQL 資料庫時,使用者可能會遇到以下情況執行階段錯誤:「物件關閉時不允許進行操作。」嘗試將資料從記錄集複製到Excel 區域時。此錯誤通常表示連接字串或記錄集狀態有問題。
此問題的一個潛在原因是連接字串的規範不正確。確保提供所有必要的參數,包括資料庫名稱和任何所需的憑證。原始程式碼片段中提供的連接字串缺少初始目錄參數,該參數指定要連接的資料庫。
透過將初始目錄參數新增至連接字串並使用更簡單的方法來執行 SQL 語句直接(而不是 ADODB.Command 物件),問題就可以解決。以下修改後的程式碼包括必要的修改:
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
以上是為什麼在 Excel-VBA 中存取 SQL 資料庫時出現「物件關閉時不允許操作」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!