gpt4 book ai didi

sql-server - 请求的操作需要 OLE DB Session 对象... - 通过 ADO 将 Excel 连接到 SQL 服务器

转载 作者:行者123 更新时间:2023-12-02 00:44:52 24 4
gpt4 key购买 nike

我正在尝试使用 Excel 2003 并将其连接到 SQL Server 2000 以运行一些动态生成的 SQL 查询,最终填充某些单元格。

我尝试通过 ADO 通过 VBA 执行此操作(我已尝试过 2.8 到 2.0),但在设置 ActiveConnection 时遇到错误ADODB.Connection 内的变量目的。我需要尽快解决这个问题...

Requested operation requires an OLE DB Session object, which is not supported by the current provider.

老实说,我不确定这个错误意味着什么,但现在我不在乎。 如何使此连接成功以便我可以运行我的查询?

这是我的 VB 代码:

Dim SQL As String, RetValue As String
SQL = " select top 1 DateTimeValue from SrcTable where x='value' " 'Not the real SQL
RetValue = ""


Dim RS As ADODB.Recordset
Dim Con As New ADODB.Connection
Dim Cmd As New ADODB.Command

Con.ConnectionString = "Provider=sqloledb;DRIVER=SQL Server;Data Source=Server\Instance;Initial Catalog=MyDB_DC;User Id=<UserName>;Password=<Password>;"
Con.CommandTimeout = (60 * 30)


Set Cmd.ActiveConnection = Con ''Error occurs here.

' I'm not sure if the rest is right. I've just coded it. Can't get past the line above.
Cmd.CommandText = SQL
Cmd.CommandType = adCmdText

Con.Open
Set RS = Cmd.Execute()

If Not RS.EOF Then

RetValue = RS(0).Value
Debug.Print "RetValue is: " & RetValue

End If
Con.Close

我认为连接字符串有问题,但我已经尝试了十几种变体。现在我只是在黑暗中拍摄......

注意/更新:让事情变得更加困惑的是,如果我在 Google 上搜索上面的错误引用,我会得到很多回复,但似乎没有任何相关信息,或者我不确定哪些信息是相关的....

我在“Microsoft Excel 对象”下的“Sheet1”中找到了 VBA 代码。我以前这样做过,但通常将东西放在模块中。这会有所作为吗?

最佳答案

您尚未打开连接。我认为在将其分配给 Command 对象之前,您需要一个 Con.Open

Con.ConnectionString = "Provider=sqloledb;DRIVER=SQL Server;Data Source=Server\Instance;Initial Catalog=MyDB_DC;User Id=<UserName>;Password=<Password>;"
Con.CommandTimeout = (60 * 30)

Con.Open

Set Cmd.ActiveConnection = Con 'Error occurs here.

Cmd.CommandText = SQL
Cmd.CommandType = adCmdText

关于sql-server - 请求的操作需要 OLE DB Session 对象... - 通过 ADO 将 Excel 连接到 SQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1669777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com