无法使用VBA从Excel 64位连接到Mysql

问题描述 投票:0回答:1

我尝试迁移之前在 Windows 10 下使用 32 位 ODBC 驱动程序运行的 Excel 工作表。
看来我的问题并不新鲜,因为我读了几个与此相关的问题。
我在 Windows 11 下。我运行 Excel 64 位,并且也安装了 MySQL ODBC 驱动程序 64 位。
如果我使用集成到 Excel 的查询工具,我可以使用 ODBC 驱动程序连接到我的数据库。

我做了一个从其他线程中获取的小测试:

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

但是我遇到了著名的错误:

运行时错误'-2147467259 (80004005)':

[Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序

我知道 Excel 32 位有一个陷阱,因为必须安装 ODBC 32 位。但在那里,一切都是 64 位的。

如有任何帮助,请来! ;)

excel vba odbc mysql-connector
1个回答
0
投票

好吧,我找到了解决方案。 我对在 64 位环境下读到的有关 Excel、ODBC 和 MySQL 的所有内容感到有点困惑。 我在连接字符串中也犯了一个错误。 最后:

  • 我安装了最新的 MySQL ODBC ANSI 驱动程序(版本 8.3),64 位
  • 我使用驱动程序的正确名称更新了连接字符串中的驱动程序参数!
  • 没有 ODBC 32 位驱动程序!
  • 无提供者参数

它有效!

© www.soinside.com 2019 - 2024. All rights reserved.