Żądana operacja wymaga obiektu sesji OLE DB… - Łączenie programu Excel z serwerem SQL za pośrednictwem ADO

Próbuję pobrać program Excel 2003 i podłączyć go do programu SQL Server 2000, aby uruchomić kilka dynamicznie generowanych zapytań SQL, które ostatecznie wypełniają określone komórki.

Próbuję to zrobić za pośrednictwem VBA przez ADO (próbowałem 2.8 do 2.0), ale otrzymuję błąd podczas ustawianiaActiveConnection zmienna, która jest wewnątrzADODB.Connection obiekt. Muszę to szybko rozwiązać ...

Żądana operacja wymaga obiektu sesji OLE DB, który nie jest obsługiwany przez bieżącego dostawcę.

Naprawdę nie jestem pewien, co ten błąd oznacza i teraz mnie to nie obchodzi.Jak uzyskać połączenie, aby móc uruchomić moje zapytania?

Oto mój kod 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

Wyobrażam sobie, że coś jest nie tak z ciągiem połączeń, ale wypróbowałem kilkanaście odmian. Teraz strzelam po ciemku ....

Uwaga / aktualizacja: Żeby było bardziej mylące, jeśli Google dla powyższego błędu cytuje, otrzymuję dużo trafień, ale nic nie wydaje się istotne lub nie jestem pewien, jakie informacje są istotne ....

Mam kod VBA w „Arkuszu1” w sekcji „Obiekty Microsoft Excel”. Zrobiłem to już wcześniej, ale zwykle umieszczam rzeczy w module. Czy to może coś zmienić?

questionAnswers(1)

yourAnswerToTheQuestion