我正在尝试使用Excel2003并将其连接到SQL Server 2000以运行一些动态生成的SQL查询,这些查询最终会填充某些单元格。
我试图通过vba via ado(我尝试了2.8到2.0),但在设置
ActiveConnection
变量,位于
ADODB.Connection
对象。我需要尽快解决这个问题…
请求的操作需要一个OLE DB会话对象,当前提供程序不支持该对象。
我真的不知道这个错误是什么意思,现在我不在乎。
如何使此连接成功以便运行查询?
这是我的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
我认为连接字符串有问题,但我尝试了十几种变体。现在我只是在黑暗中射击……
注释/更新
:让事情更混乱的是,如果我谷歌上面的错误报价,我得到了很多回击,但似乎没有相关的或我不确定什么信息是相关的….
我已经在“sheet1”中的“microsoft excel objects”下找到了VBA代码。我以前做过,但通常将这些内容放在一个模块中。这会有什么不同吗?