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

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

Mary-Kate Olsen
发布: 2025-01-01 09:20:12
原创
481 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板