【问题标题】:Unable to import Access DB to SQL Server Migration Assistant for Access (32 bit)无法将 Access DB 导入 SQL Server Migration Assistant for Access(32 位)
【发布时间】:2020-09-21 21:30:57
【问题描述】:
我正在尝试在我的 64 位 Windows 机器上使用 32 位 SQL Server 迁移助手 (SSMA) 将 32 位 MS Access DB 迁移到 SQL Server。由于以下错误,向迁移项目添加 Access DB 总是失败。错误消息建议使用我已经在使用的 32 位版本的 SSMA。有什么问题?
访问对象收集器错误:数据库
检索具有 CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} 的组件的 COM 类工厂失败,原因是以下错误:80040154 类未注册
(来自 HRESULT 的异常:0x80040154 (REGDB_E_CLASSNOTREG))。请确保您使用的是正确版本的 SQL Server 迁移助手。
如果您安装了 32 位 Microsoft Access,则需要使用 32 位版本的迁移助手。
要使用 64 位版本的迁移助手,您需要安装 https://go.microsoft.com/fwlink/?linkid=834402 上提供的 64 位 Microsoft Access 组件。
加载数据库内容时出错
【问题讨论】:
标签:
ms-access
database-migration
32-bit
sql-server-migration-assi
【解决方案1】:
您最好的做法是安装 ACE 数据引擎。
安装 Access 的最新版本将无法正常工作!甚至是最近的运行时版本!
自 Access 2013 起,Access 完整版(或运行时版)的安装不会安装 ACE 的公开副本。由于这种混乱,他们正在扭转这一政策,但由于这种混乱,几年来安装 Access(完整版或运行时)都行不通?
然后去安装 ACE 数据引擎。无论如何,它比 Access 运行时更小更轻。
所以,请使用此链接:
Microsoft Access 数据库引擎 2016 可再发行组件
https://www.microsoft.com/en-us/download/details.aspx?id=54920
所以请记住,为最后几个版本安装 Access 并没有也不会安装 ACE 的公开副本。您必须单独安装 ACE 引擎,以便与 VB6、vb.net、c# 或需要 ACE 数据引擎的公开副本的 SSMAA 等外部软件分开使用。虽然 Microsoft 正在扭转这一决定(Access full 或运行时会暴露 ACE),但目前的情况令人困惑,因为您可以尝试安装多个版本的 Access,甚至是运行时版本,但您仍然不会得到暴露的ACE 的副本。