過去兩天VBA問題一直在困擾着我。我在Excel中有一個基於宏的模型,其數據集通過OLEDB從Oracle購買到電子表格中。爲了說明這個問題,我簡單地在模型中創建了兩個函數。一個使用ODBC(「odbc」),另一個使用OLEDB(「OraOLEDB」)。該代碼上週運行良好,並沒有改變。
但是,現在,我收到一條錯誤消息,指出「運行時錯誤'424':對象在我在子」OraOLEDB「中執行行」conn.Open strCon「時所需的對象。無法建立連接數據庫!所以當我試圖用這行代碼建立與數據庫的連接時,它失敗了,有趣的是,通過ODBC,可以建立一個連接,在「odbc」子行中的「conn.Open strCon」行「執行成功,我可以建立到數據庫的連接
我沒有改變Excel模型中的任何東西,但最近我確實有一堆windows更新,我不知道是否會損壞任何東西。認爲它可能有,我不想使用ODBC連接的原因是它顯着慢,我得到運行時間1使用OLEDB的速度更快。請讓我知道你是否可以幫忙。
Sub odbc()
Dim conn As Object
Dim strCon As String
strCon = "Driver={Microsoft ODBC for Oracle};
CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=xxx)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=xxx)));
uid=xxx;pwd=xxx;"
Set conn = CreateObject("ADODB.Connection")
conn.Open strCon
End Sub
Sub OraOLEDB()
Dim conn As Object
Dim strCon As String
strCon = "Provider=OraOLEDB.Oracle;
Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)
(HOST = xxx)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = xxx)));
User Id=xxx;Password=xxx"
Set conn = CreateObject("ADODB.Connection")
conn.Open strCon
Serg。通過這種方式定義變量來修復它。謝謝。 – jp3nyc
@ jp3nyc:請標記幫助您最好的答案,以便我們的讀者確切知道哪個答案可以解決您的問題。 – Rachcha