You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SSMA导入Access数据库时出现DLL初始化错误

Access数据库导入SQL Server时SSMA连接Access报错(CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} 初始化失败)

错误现象

在使用SSMA(SQL Server Migration Assistant)连接Access数据库时触发以下错误:

Access Object Collector error: Database
Retrieving the COM class factory for component with CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} failed due to the following error: 8007045a A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A).
An error occurred while loading database content.

完整日志

[Mandatory: Generic] [16268/4] [2022-09-29 21:06:40]: SQL Server Migration Assistant for Access v9.1.22233.1001
[Mandatory: Generic] [16268/4] [2022-09-29 21:06:40]: Starting assembly: SSMAforAccess, Version=9.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Created: 08/21/2022 14:03:24
Last Modified: 08/21/2022 14:03:24
OS Version: Microsoft Windows NT 10.0.19044.0
OS architecture: x64
Processor architecture: AMD64
Current culture: en-US
UI culture: en-US
[Error: Collector] [16268/20] [2022-09-29 21:06:59]: Access Object Collector: An error occurred while loading database content.
[Error: Collector] [16268/20] [2022-09-29 21:06:59]: Exception: Retrieving the COM class factory for component with CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} failed due to the following error: 8007045a A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A).
 site: System.MarshalByRefObject AllocateUninitializedObject(System.RuntimeType)
 source: mscorlib
   at System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)
   at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)
   at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj)
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at Microsoft.SSMA.Framework.Access.DaoUtils.DaoUtilities.ConnectToDatabaseImpl(String fileName, Boolean readOnly, String password, Nullable`1 workgroupPolicySettings)
   at Microsoft.SSMA.Framework.Access.DaoUtils.DaoUtilities.TryConnectToDatabase(String fileName, Boolean readOnly, String& password, PasswordAsker passwordAsker, Nullable`1& workgroupPolicySettings, WorkgroupPolicyAsker workgroupPolicyAsker)
   at Microsoft.SSMA.Framework.Access.Generic.AccessConnectionUtilities.ConnectToMdbFile(XNode xMdbFile, Boolean readOnly, IUIAskPasswordProvider askPasswordProvider, IUIWorkgroupPolicyProvider workgroupPolicyProvider)
   at Microsoft.SSMA.Framework.Access.Collector.Loaders.MDBFileLoader.LoadChildren(XNode xNode)

环境信息

  • Office 365:64位
  • SSMA for Access:9.1版本,64位(路径C:\Program Files\Microsoft SQL Server Migration Assistant for Access\bin\SSMAforAccess.exe)
  • SQL Server 2019 Developer Edition:64位
  • 此前曾成功通过SSMA完成导入,近期更换过Office 365注册账号并更新了SSMA版本

已尝试的操作

  • 修复Office安装
  • 卸载并重装SSMA
  • 重启电脑
  • 注册表搜索CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419},确认对应DAO.DBEngine.120,但多个WOW6432Node下的相关注册表项无值,且无直接关联的DLL引用

解决建议

1. 重新注册DAO组件

打开管理员权限的命令提示符,执行以下命令(对应64位Office,若路径不符需先找到Office安装目录下的dao360.dll实际位置):

regsvr32 "C:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\DAO\dao360.dll"

2. 检查Office Click-to-Run与SSMA兼容性

  • 打开任意Office应用(如Excel),进入文件>账户>更新选项>立即更新,确保Office为最新版本
  • 尝试使用之前成功导入时的SSMA旧版本,新版本可能与Click-to-Run环境存在适配问题

3. 修复DAO注册表项

  1. 在注册表中找到HKEY_CLASSES_ROOT\CLSID\{CD7791B9-43FD-42C5-AE42-8DD2811F0419}(非WOW6432Node路径),确认默认值为DAO.DBEngine.120
  2. 检查该CLSID下的InprocServer32子项,确保默认值指向正确的64位dao360.dll路径
  3. 若路径缺失或错误,手动修改为实际DLL路径

4. 替代迁移方案

若以上方法无效,可绕过SSMA直接迁移:

  • 使用Access自带的外部数据>SQL Server导出功能,直接将数据导入SQL Server
  • 使用SQL Server的导入和导出向导,选择Access数据源完成迁移

内容的提问来源于stack exchange,提问作者Katerine459

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:01:02