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

SSMA for Access连接源数据库失败:外部组件抛出异常

解决SSMA for Access迁移时OLEDB连接失败错误(错误码-2147467259)

问题背景

环境:Windows 11,SSMA for Access 9.4,SQL Server Express 2016,Access数据库为.accdb 2007-2016格式。
此前迁移正常,近期迁移步骤突然失败,核心报错:

[Error: Datamigrator] [25208/1] [2023-10-23 13:43:26]: Establishing connection with the source database failed. [Error: Datamigrator] [25208/1] [2023-10-23 13:43:26]: Exception: External component has thrown an exception. site: Void GetDataSource(System.Data.OleDb.OleDbConnectionString, System.Data.OleDb.DataSourceWrapper ByRef) source: System.Data error code: -2147467259...

已确认SQL目标库连接正常,更换此前成功迁移的数据库仍报错,排除数据库本身问题;重装SSMA、回退旧版本、尝试控制台模式均无效,怀疑.NET Framework 4.8安装影响,推测OLEDB组件损坏。

解决方案步骤

1. 修复/重装Access OLEDB驱动

  • 卸载现有驱动:打开「设置」→「应用」→「应用和功能」,搜索“Microsoft Access Database Engine”并卸载。
  • 匹配架构安装:根据SSMA的架构(32/64位)下载对应版本的驱动,以管理员身份运行安装包;若出现兼容性提示,右键安装包→「属性」→「兼容性」,勾选“以兼容模式运行这个程序”并选择Windows 10后再安装。

2. 修复.NET Framework 4.8

  • 管理员身份打开命令提示符,依次执行:
    DISM /Online /Cleanup-Image /RestoreHealth
    
    sfc /scannow
    
  • 或下载.NET Framework 4.8官方修复工具,运行完成修复。

3. 重置OLEDB注册表项

  • 按Win+R输入regedit打开注册表编辑器,导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEDB。
  • 右键导出该键值备份,然后删除此键,重启电脑后重新安装Access OLEDB驱动,系统会自动重建相关注册表项。

4. 验证SSMA与驱动架构一致性

  • 查看SSMA架构:右键SSMA快捷方式→「属性」→「详细信息」,确认是32位还是64位。
  • 确保安装的Access OLEDB驱动架构与SSMA完全匹配(例如SSMA是32位则必须安装32位驱动,即使系统是64位)。

5. 测试OLEDB连接可用性

  • 使用PowerShell测试基础连接:
    $connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\target.accdb;"
    $conn = New-Object System.Data.OleDb.OleDbConnection($connString)
    try {
        $conn.Open()
        Write-Host "OLEDB连接测试成功"
    } catch {
        Write-Host "OLEDB连接测试失败: $_"
    } finally {
        $conn.Close()
    }
    
    若测试失败,说明OLEDB组件问题未解决,需重点排查驱动安装和系统组件修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:53:23