使用Microsoft SQL Server Migration Assistant for Access将Access数据库转换为MSSQL数据库

10
我正在尝试使用Microsoft SQL Server Migration Assistant for Access版本6.0将Ms Access数据库转换为MS SQL 2012,但每次尝试转换时都会出现错误。请问有什么办法可以解决这个问题?我已经重新安装了Microsoft SQL Server Migration Assistant for Access程序,它只能工作一次,之后就会出现相同的错误。非常感谢您的帮助。
访问对象收集器错误:数据库。检索具有CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} 的组件的COM类工厂失败,原因是以下错误:80040154类未注册(来自HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG))。此错误可能是在仅安装32位连接组件的情况下以64位应用程序运行SSMA或反之而为。如果您有32位连接组件,则可以运行32位SSMA应用程序,如果您有64位连接组件,则可以运行64位SSMA应用程序,32位和64位SSMA的快捷方式均可在“程序”菜单下找到。您还可以考虑从http://go.microsoft.com/fwlink/?LinkId=197502更新连接组件。加载数据库内容时发生错误。

你有根据错误信息本身的建议进行32/64位检查吗? - Paolo
是的,我确实进行了更改,奇怪的是它起作用了。只有一次。 - emilios
5个回答

11

为了补充故事的另一面……

如果您有一个64位设置,您可能需要走另一条路,安装64位的MSAccess 2010引擎。

我正在运行Access 2013,并且我认为它是64位的。但是SMAA工具抛出了80040154错误。

  • 我认为SMAA不能或不使用64位Access 2013所带的连接驱动程序。

因此,使用32位的SMAA没有帮助。

  • 安装64位的2010引擎有用。

我在这里找到了一个免费的独立下载链接:

安装后,我简单地重新启动了SMAA 64位,然后向导第一次就成功了。


感谢: https://social.technet.microsoft.com/Forums/itmanagement/en-US/0249eebf-14bd-45f6-9bca-3b42395a3d13/ssma-60-error-retrieving-the-com-class-factory-for-component-failed-due-to-the-following-error?forum=sqlservermigration


1
信不信由你,安装2010独立工具,在Windows 10上修复了我在Access 2016上遇到的问题。 - sjkp
问题在于开发迁移工具的 MS SQL Server 开发人员从未在其系统上完整安装MS Access,因此他们引入了只有在MS Access运行时环境中才安装的组件依赖关系。 - m12lrpv
这对我也起作用了。 Windows 10 64位, SMAA 64位, SQL Server 2019试用版64位?, Office Access 32位, Microsoft Access数据库引擎2010可再发行版64位。 - Chris

6
我记得这个错误。尽管我使用的是64位的Windows,但我还是需要找到32位SSMA的EXE文件。默认安装位置是:
C:\ Microsoft SQL Server Migration Assistant for Access \ bin
文件名为:
SSMAforAccess32.exe

我们采用这种方法取得了成功,而安装2010运行时却没有成功(我们的环境是Windows 7 64位,SQL Server 2014,Access 2013)。 - Shanerk

3

1
关于安装Access运行时环境以解决SSMA的80040154错误:在使用Access 2016时,我发现由于已经安装了Access,运行时环境无法安装。我需要先卸载Access,然后安装仅包含运行时环境的版本。这样,SSMA就可以在没有80040154错误的情况下运行。但整个过程非常麻烦。

0
如果您正在尝试通过.NET应用程序从/向MS Access数据库文件读取/写入数据,请尝试将项目切换到x86架构。在我的情况下,这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接