'Microsoft.ACE.OLEDB.16.0'提供程序未在本地计算机上注册.(System.Data)

Suh*_*ule 83 sql-server oledb excel ssis aceoledb

当我尝试通过MSSQL Server数据导入连接到任何Excel时出现此错误,即SSIS包"Microsoft.ACE.OLEDB.16.0"提供程序未在本地计算机上注册.(System.Data)它不是相同的版本我认为需要其他修补

小智 101

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

我遇到了同样的问题并通过下载以下内容解决了这个问题:

  1. 下载并安装:https: //www.microsoft.com/en-us/download/details.aspx?id = 54920

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

有用.

资源

  • 为我完美工作,谢谢!加载我的办公室2016年文件作为办公室2007-2010,它运作良好.比试用CSV/TSV要好得多. (4认同)
  • #1中的链接不起作用. (3认同)
  • 必须使用 /quiet 标志从命令行运行(32 位)安装程序。然后就成功了。否则就是抱怨。 (3认同)
  • 感谢您提及我*不应该*选择Office 2016.不确定我是否会尝试过其中一个. (2认同)

小智 64

对于那些在尝试上述操作后仍然坚持这个问题的人.如果您右键单击数据库并转到tasks-> import,那么这就是问题所在.转到开始菜单,在sql server下,找到x64位导入导出向导并尝试.对我来说就像一个魅力,但是我花了很长时间才找到微软!

  • 我那里没有Excel选项...... (8认同)
  • 64 位导入/导出向导不会随 SSMS 一起安装。您需要在本地安装 SQL Server 才能获取该工具。 (4认同)
  • 我没有 x64 版本的导入/导出向导 (3认同)
  • 要从64位版本的DTSWizard中获取Excel,请安装2016 Access Database Engine可再发行组件:https://www.microsoft.com/en-us/download/details.aspx?id = 54920来源:http:// sqlblog.com/blogs/john_paul_cook/archive/2017/06/11/sql-server-2016-import-and-export-wizard-and-excel.aspx我自己测试了这个,这很有效.请注意,SSDT是一个32位应用程序,因此如果您从中启动导入/导出向导,则它是启动的向导的32位版本.即使在Visual Studio 2017和SQL Server 2017中也是如此. (2认同)
  • 谢谢你的回答,很有用。我有 Office (2016) 64 位和 SQL 64 位以及相应的连接器 Microsoft.ACE.OLEDB.16.0。但是,我收到消息“'Microsoft.ACE.OLEDB.16.0' 提供程序未在本地计算机上注册。” 这根本没有意义。直接打开导入向导64位后,导入excel文件没有任何问题。我的印象是,默认情况下,tasks->import 路径转到 32 位向导,这与 64 位项目混淆,不确定。谢谢保罗。 (2认同)
  • @Rod,尽管名称,我向你保证这确实解决了Excel和DTSWizard的这个特定问题. (2认同)

jpc*_*s23 16

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

1:直接打开sql server导入导出向导。

如果您能够使用直接 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/en-us/download/details.aspx?id=54920

  • 哇,这真是令人沮丧。结果 SSMS 18.5 安装程序是 64 位,但应用程序本身是 32 位。我一直在安装 64 位 AccessDatabaseEngine 办公组件,但出现同样的错误。查看任务管理器,看到SSMS是32位...然后,我使用了你的方法:C:\Files\AccessDatabaseEngine.exe /quiet,因为我安装了64位Office 2016。这有效!它成功安装了 32 位数据库引擎和 64 位 Office。 (3认同)

小智 10

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

  • 仅当要导入的行数少于 64K 时,此方法才有效。 (6认同)
  • 经过几次尝试,但最终我找到了解决问题最快的方法。 (2认同)

que*_*o42 10

与此处的其他答案相反,您可以仅在其他 64 位 Microsoft 程序旁边安装“ACEDB 驱动程序 64 位”。

就我而言,我安装了“Microsoft 365” 64位(Microsoft Office 365)。

因为错误

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

我尝试安装Microsoft Access Database Engine 2016 Redistributable。但我在 32 位和 64 位安装程序中遇到错误。

64 位:

您无法安装 64 位版本的 Microsoft Access Database Engine 2016,因为您当前安装了 64 位 Office 产品。如果要安装 32 位 Microsoft Access Database Engine 2016,首先需要删除 Office 产品的 64 位安装。卸载以下产品后,重新运行安装程序以安装 32 位版本的 Microsoft Access Database Engine 2016: Office 16 即点即用扩展性组件 64 位注册

或 32 位:

您无法安装 32 位版本的 Microsoft Access Database Engine 2016,因为您当前安装了 64 位 Office 产品。如果要安装 32 位 Microsoft Access Database Engine 2016,首先需要删除 Office 产品的 64 位安装。卸载以下产品后,重新运行安装程序以安装 32 位版本的 Microsoft Access Database Engine 2016: Office 16 即点即用扩展性组件 64 位注册

我无法卸载单个组件:

在此输入图像描述

步骤:

  1. 无需卸载并重新安装任何东西。

  2. 在Microsoft Access Database Engine 2016 Redistributable中按“下载”

在此输入图像描述

  1. 选择AccessDatabaseEngine_X64.exe。无需安装 32-bit AccessDatabaseEngine.exe,反对其他答案。

在此输入图像描述

  1. 从命令提示符运行可执行文件。不要忘记添加/quiet,否则它将不起作用:

    C:\Users\myuser\Downloads>AccessDatabaseEngine_X64.exe /quiet
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果需要,请按“确定”以获得管理员权限。

此后,我的宏可以从 Excel 工作表中获取数据。我检查了 Microsoft 365 包的本地 Microsoft Access,它仍然有效。

积分转到您无法安装 32/64 位版本的 Microsoft Access 数据库引擎,因为您当前拥有 64/32 位 Office及其源代码位于如何使用 Office 64 位安装 Microsoft.Ace.oledb 32 位?


Pet*_*erX 6

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

  • 对于伟大的问题,伟大的解决方案,谢谢@PeterX (2认同)
  • 效果非常好!当我上传 csv 时,我只需要选择平面文件而不是 ms excel 2016。 (2认同)
  • 伟大的!当“更好”的方法不起作用时,请使用“更简单”的方法......:) (2认同)

arn*_*nav 5

ACE.oledb.16.0 在 64 位操作系统中不起作用

从https://www.microsoft.com/en-us/download/details.aspx?id=13255下载补丁

  • 它不起作用我尝试仍然遇到相同的错误 (9认同)
  • 它适用于在 SQL Server 导入和导出向导上导入 Microsoft Excel 2007-2010 (2认同)

小智 5

如果您有Office 365

  1. 在此下载 32 位版本
  2. 以管理员身份运行命令提示符 --> C:\Downloads\AccessDatabaseEngine.exe /quiet
  3. 关闭 SSMS 并重新打开,再次尝试导入文件。

不起作用?

  1. 在这里下载 64 位版本
  2. 以管理员身份运行命令提示符 --> C:\Downloads\AccessDatabaseEngine_X64.exe /quiet
  3. 关闭 SSMS 并重新打开,导入文件。

注意:例如,下载的可执行文件的路径可能是“C:\Downloads\User\ USERNAME \Downloads\AccessDatabaseEngine.exe”