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

64位Excel通过VBA连接MySQL失败问题求助

问题:64位Excel搭配MySQL ODBC驱动时VBA连接报错

环境与现象

  • 原环境:Windows 10 + 32位ODBC驱动 + 32位Excel
  • 当前环境:Windows 11 + 64位Excel + 64位MySQL ODBC驱动
  • 异常表现:Excel内置查询工具可正常连接数据库,但运行以下VBA代码时报错
  • 错误信息:

Run-time error '-2147467259 (80004005)':
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

测试VBA代码

Public Function OpenConnection() As ADODB.Connection
    Const location = "localhost"
    Const user = "swm"
    Const password = "xxxxxxx"
    Const database = "swm"
    Const mysql_driver = "MySQL ODBC 8.0 ANSI Driver"

    ' Build the connection string
    Dim s As String
    s = "Driver={" & mysql_driver & "};Server=" & _
    location & ";Database=" & _
    database & ";UID=" & _
    user & ";PWD=" & password
    Debug.Print s
    
    ' Open connection
    Set OpenConnection = New ADODB.Connection
    OpenConnection.Open s
End Function

解决方法

  • 确认驱动名称完全匹配

    1. 按Win+R,输入odbcad32.exe打开64位ODBC数据源管理器(不要打开C:\Windows\SysWOW64\odbcad32.exe,这是32位版本)
    2. 切换到「驱动程序」标签,找到已安装的MySQL ODBC驱动的准确名称(常见为MySQL ODBC 8.0 Unicode Driver,而非代码中的ANSI版本)
    3. 将VBA代码中mysql_driver常量的值替换为实际驱动名称
  • 检查VBA项目的位数设置

    1. 打开Excel,按Alt+F11进入VBA编辑器
    2. 点击「工具」>「引用」,确保勾选的ADODB引用为64位版本(如Microsoft ActiveX Data Objects 6.1 Library或更高)
    3. 右键VBA项目,选择「属性」>「编译」,确认「平台」设置为「x64」(匹配64位Excel)
  • 调整连接字符串格式
    尝试添加Provider前缀指定ODBC驱动管理器,修改连接字符串如下:

    s = "Provider=MSDASQL;Driver={" & mysql_driver & "};Server=" & location & ";Database=" & database & ";UID=" & user & ";PWD=" & password
    
  • 重新安装驱动
    卸载现有64位MySQL ODBC驱动,下载对应版本的官方安装包,右键以管理员身份运行安装,确保安装过程无异常。

内容的提问来源于stack exchange,提问作者Marc M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 19:31:09