“ Microsoft.ACE.OLEDB.16.0”提供程序未在本地计算机上注册。(系统数据)


103

当我尝试通过MSSQL Server数据导入(即SSIS包)连接到任何Excel时,都会收到此错误。Microsoft.ACE.OLEDB.16.0提供程序未在本地计算机上注册。(System.Data

我认为它不是同一版本,需要其他一些修补程序


5
我不知道为什么这个问题被投票认为是重复的。显然​​,这是错误消息中的更新版本,需要一组更新的组件!这个问题和解答对我的Microsoft.ACE.OLEDB.16.0问题有所帮助。关闭请求所指向的问题是for Microsoft.ACE.OLEDB.12.0,答案是那个版本。这个问题应予以备份。
Arvo Bowen

@ArvoBowen没问题。我重新打开了。但是,两个问题都有相同的解决方案。
哈迪

3
为何如此?它们是需要不同下载的不同版本。它们是相关的,但是有不同的解决方案。如果我遵循另一个问题的答案,那将无法解决我的问题。
Arvo Bowen

Answers:


116

注意:我正在运行SQL 2016 Developer 64位,Office 2016 64位。

我遇到了相同的问题,并通过下载以下文件解决了该问题:

  1. 下载并安装此程序:https : //www.microsoft.com/zh-cn/download/details.aspx?id=54920

  2. 无论您尝试访问/导入什么文件,请确保将其选择为Office 2010文件(即使它可能是Office 2016文件)。

有用。

资源


4
非常适合我,谢谢!确实将Office 2016文件加载为Office 2007-2010,并且运行良好。比尝试CSV / TSV好得多。
tc_NYC '17

2
感谢您提到我不应该选择Office2016。不确定我会尝试其他其中之一。
birdus

第一条链接已断开
jcvegan

1
我刚刚将链接更新为Microsoft Access Database Engine 2016 Redistributable的当前URL
e_i_pi

在WS 2016 64Bit上,我必须使用32Bit版本才能使其运行...
Lambda

98

对于尝试了上述方法之后仍然停留在此问题上的任何人。如果右键单击数据库并转到任务->导入,那么这里就是问题所在。转到开始菜单,然后在sql server下,找到x64位导入导出向导,然后尝试执行该操作。对我来说就像是一种魅力,但花了我很长时间才找到Microsoft!


3
要使DTSWizard的64位版本具有Excel,请安装可再发行的2016 Access数据库引擎:microsoft.com/en-us/download/details.aspx ? id=54920来源:sqlblog.com/blogs/john_paul_cook/archive/ 2017/06/11 /… 我自己测试了这个,这有效。请注意,SSDT是一个32位应用程序,因此,如果从其中启动导入/导出向导,则它是启动的32位版本的向导。即使从Visual Studio 2017和SQL Server 2017开始,情况仍然如此
。–

1
感谢您的回答,非常有用。我有Office(2016)64位和SQL 64位以及相应的连接器Microsoft.ACE.OLEDB.16.0。但是,我收到消息“'Microsoft.ACE.OLEDB.16.0'提供程序未在本地计算机上注册”。这根本没有道理。直接打开64位导入向导后,导入Excel文件没有任何问题。我的印象是,默认情况下,task-> import路径转到32位向导,并且不确定64位项目。谢谢保罗。
咖啡

@otravers,我下载并安装了可再发行的2016 Access数据库引擎,但没有帮助。然后打到我了,那是Access而不是Excel。
Rod

2
@Rod,尽管有名字,但我向您保证,这确实可以解决Excel和DTSWizard的特定问题。
overs

1
我没有x64版本的Import / Export向导
PeterX

19

作为一种快速的解决方法,我只是将工作簿另存为Excel 97-2003 .xls文件。我能够以这种格式导入而没有错误。


没为我工作。得到了“来自外部数据库驱动程序的意外错误(1)。(Microsoft JET数据库引擎)”
Rod

2
经过几次尝试,但最终我找到了解决问题最快的方法。
ClubbieTim

1
仅当要导入的行少于64K时,此方法才有效。
Cougar9000

请注意,电子表格的行数不能超过65,536行,否则执行此转换可能会丢失数据。
菲德·里德

9

对我有用的替代方法是简单地转换为CSV。


2
对于大问题,好的解决方案,谢谢@PeterX
ElMatador

1
@PeterX救了我的兄弟日
穆罕默德沙·埃里

1
像魅力一样工作!当我上传csv时,我只需要选择平面文件而不是ms excel 2016。
kiradotee

6

如果您具有OS(64位)和SSMS(64位),并且已经安装了AccessDatabaseEngine(64位),但仍然收到错误,请尝试以下解决方案:

1:直接打开sql服务器导入和导出向导。

如果您能够使用直接sql server导入和导出向导进行连接,那么问题就是从SSMS导入,就像从SSMS导入数据时激活32位一样。

如果没有安装AccessDatabaseEngine(64bit),请尝试使用AccessDatabaseEngine(32bit),安装后,如果您已经安装了另一个应用程序,则Windows会阻止您继续安装,如果这样,请使用以下步骤。这是来自微软的。安静的安装。

如果已经安装了Office 365,则并排检测将阻止安装的进行。而是从命令行执行/ quiet安装这些组件。这样做,将所需的AccessDatabaseEngine.exe或AccessDatabaeEngine_x64.exe下载到您的PC,打开管理命令提示符,并提供安装路径并切换Ex:C:\ Files \ AccessDatabaseEngine.exe / quiet

或通过下面链接签入“ 添加信息”内容,

https://www.microsoft.com/zh-cn/download/details.aspx?id=54920


1
哇,真是令人沮丧。原来SSMS 18.5安装程序是64位的,但是应用程序本身是32位的。我一直在安装具有相同错误的64位AccessDatabaseEngine Office组件。看着任务管理器,看到SSMS是32位...然后,我使用了您的方法:C:\ Files \ AccessDatabaseEngine.exe / quiet,因为我安装了64位Office 2016。这有效!!它与64位Office一起成功安装了32位数据库引擎。
rjkunde


1

您现在必须使用Access-Redist(32/64位)中的新XLSX -Driver。自上次累积更新以来,当前XLS驱动程序已损坏。


0

跟着这些步骤:

  1. 转到[这里] [1],下载 Microsoft Access Database Engine 2016 Redistributable并安装
  2. 关闭SQL Server Management Studio
  3. 转到``开始''菜单-> Microsoft SQL Server 2017-> SQL Server 2017导入和导出数据(64位)
  4. 打开应用程序,然后尝试使用“ Excel 2016”选项导入数据,它应该可以正常工作。
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.