從Excel中導入數據時,提示“未在本地計算機上注冊“Microsoft.ACE.OLEDB.12.0”提供程序”的解決辦法
操作系統:使用的是64位的Windows Server 2008
解決辦法:
這是由於該計算機上沒有安裝Microsoft Access Database Engine組件,該組件幫助在現有的Microsoft Office文件與其他數據源之間傳輸數據。
在向軟件中導入數據時,如果數據源選用Excel時,連接字符串中使用的是“Microsoft.ACE.OLEDB.12.0”,所以必須安裝該組件。
對於使用64位操作系統的用戶,請下載相應的64位程序。
具體下載地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displayLang=zh-cn
對於一些早期用戶,如果連接字符串中使用的是“Microsoft.Jet.OLEDB.4.0”,由於Jet項目已經停止,該項目不再提供64位程序,所以無法繼續使用此種連接方式,請改用“Microsoft.ACE.OLEDB.12.0”,並在服務器上安裝相應的64位程序。
如果進行如上操作還是不能解決的話,請參照如下方法:
調用C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe 一定要是(X86)這個文件夾下的哦,這個命令行工具的具體用法可以查看MSDN
總結如下:
1. 在用SQL SERVER訪問.xlsx文件(office2007&2010文件格式)時,必須用provider 'Microsoft.ACE.OLEDB.12.0' 來實現。
2. 首先要安裝AccessDatabaseEngine.exe。 下載路徑:http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en
3. 在32位系統中可以在數據庫中看見這個provider。
4. 在64位系統中不能看見它,這時需調用 C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe來執行package。