0

我正在尝试在我的 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 组件。

加载数据库内容时出错

4

2 回答 2

2

您最好的做法是安装 ACE 数据引擎。

安装 Access 的最新版本将无法正常工作!即使是最近的运行时版本!

自 Access 2013 以来,安装 Access 完整版(或运行时)不会安装 ACE 的公开副本。由于这种混乱,他们正在扭转这一政策,但由于这种混乱,几年来安装 Access(完整或运行时)将无法正常工作?

然后去安装 ACE 数据引擎。无论如何,它比 Access 运行时更小更轻。

因此,请使用此链接: Microsoft Access Database Engine 2016 Redistributable

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 的副本。

于 2020-09-21T23:04:31.887 回答
1

快速搜索;您是否安装了正确的 Access Runtime?

查看以下链接:

https://techcommunity.microsoft.com/t5/microsoft-data-migration/access-connectivity-components-for-ssma/ba-p/391070

他们建议从 2016 年开始,看看它是否有效;如果没有,请卸载运行时并尝试早期版本。

于 2020-09-21T21:51:30.287 回答