A operação solicitada requer um objeto de Sessão OLE DB… - Conectando o Excel ao servidor SQL via ADO

Eu estou tentando tomar o Excel 2003 e conectá-lo ao SQL Server 2000 para executar algumas consultas SQL geradas dinamicamente que em última análise, preenchendo determinadas células.

Eu estou tentando fazer isso via VBA via ADO (eu tentei 2.8 para 2.0), mas estou recebendo um erro ao definir oActiveConnection variável que está dentro doADODB.Connection objeto. Eu preciso resolver isso bem rápido ...

A operação solicitada requer um objeto de sessão OLE DB, que não é suportado pelo provedor atual.

Eu sinceramente não tenho certeza do que esse erro significa e agora eu não me importo.Como posso conseguir que essa conexão seja bem-sucedida para que eu possa executar minhas consultas?

Aqui está o meu código 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

Eu imagino que algo está errado com a cadeia de conexão, mas eu tentei mais de uma dúzia de variações. Agora estou apenas atirando no escuro ....

Nota / Atualização: Para tornar as coisas mais confusas, se eu usar o Google para a citação do erro acima, recebo muitos acessos, mas nada parece relevante ou não sei qual informação é relevante ...

Eu tenho o código do VBA em "Sheet1" em "Microsoft Excel Objects". Eu fiz isso antes, mas geralmente coloco as coisas em um módulo. Isso poderia fazer a diferença?

questionAnswers(1)

yourAnswerToTheQuestion