Запрошенная операция требует объект сеанса OLE DB ... - Подключение Excel к серверу SQL через ADO

Я пытаюсь взять Excel 2003 и подключить его к SQL Server 2000, чтобы выполнить несколько динамически генерируемых SQL-запросов, которые в конечном итоге заполняют определенные ячейки.

Я пытаюсь сделать это через VBA через 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

Я полагаю, что что-то не так со строкой подключения, но я пробовал более десятка вариантов. Теперь я просто стреляю в темноте ....

Примечание / Обновить: Чтобы сделать вещи более запутанными, если я Google для цитаты ошибки выше, я получаю много обращений назад, но ничто не кажется уместным, или я не уверен, какая информация имеет отношение ....

У меня есть код VBA в «Sheet1» в разделе «Объекты Microsoft Excel». Я делал это раньше, но обычно помещал вещи в модуль. Может ли это иметь значение?

Ответы на вопрос(1)

Ваш ответ на вопрос