2013-10-30 149 views
5

Microsoft.ACE.OLEDB.12.0'提供程序未在本地計算機上註冊。與MS Access建立連接

Microsoft.JET.OLEDB.4.0' 提供者未註冊在本地計算機上。

對我來說都是錯誤的。嘗試創建Access連接時,我一直在嘗試這兩種方法。我不知道該做什麼。

我在64位機器上有32位辦公室。我發現他們說要安裝Access數據庫引擎的解決方案,但它不會讓我在32位辦公室安裝64位。另一個來源提到繞過這一點,你可以進入命令行並做$> AccessDatabaseEngine_X64.exe /passive但被動不被識別爲命令。

我發現另一個潛在的解決方案,它說下載Office系統驅動程序和組件,然後添加訪問數據庫作爲來源,但也沒有工作。如果有人能夠提供幫助,我將不勝感激。

文章鏈接我指的是:

+3

嘗試運行作爲一個32位的過程。 – SLaks

+0

是的,我會嘗試這個以及 –

+0

你是如何做到這一點? –

回答

2

如果您已經有32-bi t Office安裝,那麼你幾乎堅持使用Access數據庫引擎(a.k.a.)的32位版本。 「高手」)。正如你所發現的那樣,假設有一種方法可以將64位ACE強制加載到已經具有32位Office組件的機器上,但是我個人不會「去那裏」。

因此,您需要將C#項目配置爲以32位方式運行。你可以通過該項目的屬性的生成選項卡上選擇Platform: x86

Platform.png

(即屏幕快照是一個32位的虛擬機上,所以默認配置已經是32位的默認在64位計算機上設置應該是「任何CPU」。)

爲了驗證其進程正在運行,你可以使用

String.Format("I am running as {0}-bit.", IntPtr.Size * 8) 

例如環境,在Windows窗體應用程序,你湊LD使用

MessageBox.Show(String.Format("I am running as {0}-bit.", IntPtr.Size * 8)); 

應顯示

I am running as 32-bit. 
+0

問題仍然存在:( –

+0

@JohnSmith我已經更新了我的答案和代碼,以驗證進程運行的環境。請確認您的應用程序確實現在以32位運行。 –

+0

是的,它仍在64位位。非常感謝您的幫助,現在就開始工作 –