首页 >数据库 >mysql教程 >为什么在 Excel-VBA 中访问 SQL 数据库时出现'对象关闭时不允许操作”?

为什么在 Excel-VBA 中访问 SQL 数据库时出现'对象关闭时不允许操作”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-01 09:20:12488浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn