Я пытаюсь взять Excel 2003 и подключить его к SQL Server 2000 для запуска нескольких динамически сгенерированных SQL-запросов, которые в конечном счете заполняют определенные ячейки ,Запрашиваемая операция требует объекта сеанса OLE DB ... - Подключение Excel к SQL-серверу через ADO
Я пытаюсь сделать это через 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
Я полагаю, что-то не так со строкой подключения, но я попытался более десятка вариаций. Теперь я просто стреляю в темноту.
Note/Update: Чтобы сделать более запутанным, если я Google для приведенной выше цитаты с ошибкой, я получаю много обращений, но ничего не кажется актуальным или Я не уверен, какая информация релевантна ....
У меня есть код VBA в «Sheet1» в разделе «Объекты Microsoft Excel». Я делал это раньше, но обычно помещал вещи в модуль. Может ли это изменить ситуацию?
Это и есть ответ. Благодарю. –
Это ответ! Большое спасибо! – Willowdan