2013-11-29 416 views
2

我想使用ADODB將Visual Basic連接到MS Access。但是當我執行我的代碼時,它會提示:「無法找到提供程序,可能安裝不正確。」但是當我檢查我的目錄時,我已經安裝了我的「msjetoledb40.dll」。運行時錯誤'3706':提供程序找不到-Visual基本

這裏是我的代碼:

Dim conn As ADODB.Connection, rec As ADODB.Recordset 

    Sub sample() 

    Set conn = New ADODB.Connection 

    conn.Open ("Provider=Microsoft.Jet.OLEDB 4.0;Data Source=C:\sample.mdb;Persist Security Info=false;") 
End Sub 
+0

我有同樣的錯誤!在我的情況下,我嘗試使用安裝有Office 365 Excel VB腳本的Oracle 11g連接到Sql數據庫。我已經安裝了MDAC驅動程序,仍然問題尚未解決。 –

回答

3

這會更好:

Sub sample() 

    Dim conn As ADODB.Connection, rec As ADODB.Recordset 
    Set conn = New ADODB.Connection 
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\sample.mdb;" 
    conn.Open 
End Sub 

你錯過了一個點。

Microsoft.Jet.OLEDB 4.0 => Microsoft.Jet.OLEDB.4.0

價:http://www.connectionstrings.com/

+0

哦!如何一個'。'可能會破壞你的代碼。謝謝,這是我的另一個教訓。 – Kentot

+0

我們都從這種情況中學習。 – jacouh

0

我的解決辦法:15.0

cs = "Provider=Microsoft.ACE.OLEDB.15.0;Data Source=" & sPath & ";Persist Security Info=False;" 

和作品

錯誤3706

cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath & ";Persist Security Info=False;" 

只是改變12.0,永遠是你必須嘗試改變控制器的版本!

0

確認運行該腳本的MS Office的版本。

Provider=Microsoft.Jet.OLEDB 4.0;Data Source=C:\sample.mdb;Persist Security Info=false; 

到:如果您已經安裝了微軟Office 2013或更高版本,您應該修改連接字符串

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\sample.mdb;Persist Security Info=false; 

至少,這sovled我的問題。

相關問題