“'Microsoft.ACE.OLEDB.12.0'提供程序未在本地计算机上注册”将xlsx导入到SQL Server的过程中出错


116

我有一个64位Windows 7和SQLServer 2008 R2(64位)

我按照此处的说明将excel文件导入sql server,但是在该帖子的Figure3部分中,当我尝试访问excel文件并单击下一步时,此错误使我停止:

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine

我搜索了我必须安装的网络AccessDatabaseEngine_x64。但是当我安装它时,我遇到了同样的问题

你能帮我做什么吗?

Answers:


214

安装以下内容以解决您的错误。

2007 Office System驱动程序:数据连接组件

AccessDatabaseEngine.exe(25.3 MB)

此下载将安装一组组件,这些组件有助于在现有Microsoft Office文件(例如Microsoft Office Access 2007(*。mdb和.accdb)文件)和Microsoft Office Excel 2007( .xls,*。xlsx和* 之间进行数据传输。 xlsb)文件添加到其他数据源,例如Microsoft SQL Server


在更改了我的SSIS 64位执行功能后,这个问题对我出现了。还请注意,安装完成后即可解决此问题,无需重新启动
Iman

6
当我拥有XLSX格式的文件,将文件降级为XLS并且对我有用而无需安装任何额外功能时,发生了这种情况。
Mark Boltuc 2014年

8
关于这一点的“ 2007”真是欺骗。我正在运行SSMS 2014,Office 64位,Windows 8.1 64位,并且认为这已经过时了,但是这个“ 2007” Office组件确实可以解决问题。谢谢!
russds 2015年

1
修正了在Windows 7上我的64位办公室
哈马德汗

2
链接现在提供了404。试试这个microsoft.com/en-us/download/details.aspx?id=54920
Vivek Ayer

60

Excel 2010驱动程序为64位,而默认的SSMS导入导出向导为32,因此出现错误消息。

您可以使用“导入导出数据(64位)”工具进行导入。(“ C:\ Program Files \ Microsoft SQL Server \ 110 \ DTS \ Binn \ DTSWizard.exe”)注意路径不是Program Files x86。


1
+1。我正在安装其他答案中建议的安装额外组件。但是,当我的机器中已经有所有东西时,为什么还要安装。
Pradeep

5
我喜欢这个答案,但我想知道他们是否是更改SSMS中默认值的一种方法。
Dave.Gugg 2015年

2
我必须通过单击“开始”并搜索“导入和导出”并选择64位工具来打开64位导入器。
blizz

5
这解决了我的问题。要将默认值更改为有效的,只需将x86文件夹中的默认值替换C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTSWizard.exe为有效的之一即可C:\Program Files\Microsoft SQL Server\110\DTS\Binn\DTSWizard.exe。如果您想安全起见,请先重命名旧的而不是替换旧的,这样如果出现任何问题,您可以返回。
磁控管

3
我找到了导入向导的64位版本,但是不幸的是,与我的计算机上的32位版本不同,下拉列表中未将“ Excel”列为可能的数据源。
Bob Sammers




0

当前,Microsoft不提供“ 2007 Office System驱动程序:数据连接组件”的下载选项,而是单击“ 2007 Office System驱动程序:数据连接组件”的第一个答案,将其重定向到Cnet,获取下载链接会造成混乱。

这就是为什么谁在Windows 10中使用SQL Server 2014和最新版本的SQL Server的原因,请单击下面的链接以下载此组件来解决您的问题: -Microsoft Access Database Engine 2010

编码愉快!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.