首頁 > 資料庫 > mysql教程 > 為什麼在 Excel-VBA 中存取 SQL 資料庫時出現「物件關閉時不允許操作」?

為什麼在 Excel-VBA 中存取 SQL 資料庫時出現「物件關閉時不允許操作」?

Mary-Kate Olsen
發布: 2025-01-01 09:20:12
原創
480 人瀏覽過

Why Am I Getting

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板