sql-server-2005 - 出现错误 430 : Automation error

标签 sql-server-2005 excel vba

我正在使用 vba 和以下脚本将 SQL 导入 Excel(经过审查以保护一些数据库信息,但是脚本的部分内容有效)当我进行编译时,我收到运行时错误 430:类不支持自动化或不支持预期接口(interface)

我使用的是 Excel 2007、VBA 6.5 和 SQL 2005

这是脚本

Sub GetDataFromADO()

    Dim objMyConn As ADODB.Connection
    Dim objMyCmd As ADODB.Command
    Dim objMyRecordset As ADODB.Recordset

    Set objMyConn = New ADODB.Connection
    Set objMyCmd = New ADODB.Command
    Set objMyRecordset = New Recordset

    objMyConn.ConnectionString = "Provider=SQLOLEDB;SERVER=M$#$%#@@$1;DATABASE=i*&^*;Trusted_Connection=yes;HDR=yes"
    objMyConn.Open

    Set objMyCmd.ActiveConnection = objMyConn
    objMyCmd.CommandText = "use i*&^* select * from $#%.^&_d**^%_p**^^l where year(d****_date) = 2012 and month(d***_date)= 03 and deal_id < 5*******0 order by d***_id"
    objMyCmd.CommandType = adCmdText
    objMyCmd.Execute

    ActiveSheet.Range("A2").CopyFromRecordset (objMyRecordset)

End Sub

最佳答案

您已经初始化了 objMyRecordset,但从未向其中填充数据。然后您尝试将数据从 objMyRecordset 导入到您的 Excel 文件中,但这是行不通的。

首先确保您已填充记录集,然后只调用 CopyFromRecordset。

关于sql-server-2005 - 出现错误 430 : Automation error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083025/

相关文章:

vba - 检查范围内的数据类型

"paste"运行时出现VBA运行时错误438

sql - 从 3 个表中选择 2 列

使用 Powershell SQL 将数据提取到 Excel

sql - 将时间 23 :59:59. 999 添加到结束日期之间

vba - 创建将分钟转换为 hh :mm:ss 的 VBA 函数

vba - 如何使用 Access VBA 在 textBox.Setfocus 之后选择 TextBox 中的所有文本

excel - 滚动条设置

sql-server - 是否有一个 SQL Server 实用程序可以生成所有服务器登录名的大列表及其访问权限的概述?

python - 在 pyodbc 中将表名作为参数传递