使用VBA连接MariaDB失败求助:已装驱动仍提示数据源未找到
确认ODBC驱动的正确名称
打开ODBC数据源管理器(注意区分32位和64位,对应你的Office位数),查看已安装的MariaDB驱动的准确名称,确保连接字符串里的{MariaDB ODBC 3.1 Driver}和实际名称完全一致——比如实际可能是{MariaDB ODBC Driver 3.1},或者版本号已更新到4.0,名称会对应变化。
管理器路径:32位为C:\Windows\SysWOW64\odbcad32.exe,64位为C:\Windows\System32\odbcad32.exe。匹配Office与驱动的位数
这是最常见的踩坑点:如果你的Excel是32位,即使装了64位的MariaDB ODBC驱动,系统也无法识别。必须安装和Office位数完全一致的驱动。
查看Office位数:打开Excel,依次点「文件」→「账户」→「关于Excel」即可查看。手动验证ODBC数据源配置
在ODBC数据源管理器里创建一个系统DSN,选择MariaDB驱动,填入服务器地址、数据库名、用户名和密码,点击「测试连接」。如果测试成功,直接把连接字符串改成DSN=你的DSN名称;USER=prod1;PASSWORD=12345;,能快速排除连接字符串的语法问题。检查连接字符串的语法细节
确保参数拼写正确(比如SERVER、DATABASE这些关键词不能写错),每个参数后面的分号不能遗漏,密码如果包含特殊字符需要转义(你的密码是12345,暂时不用考虑)。也可以尝试把连接字符串写成一行,避免换行拼接时产生隐藏字符。
修改后的示例代码
Sub ConnectToMariaDB() Dim conn As ADODB.Connection Dim connectionString As String Set conn = New ADODB.Connection ' 替换为你实际的驱动名称 connectionString = "DRIVER={MariaDB ODBC Driver 3.1};" _ & "SERVER=10.0.0.10;" _ & "DATABASE=Customers;" _ & "USER=prod1;" _ & "PASSWORD=12345;" ' 或者用已配置的DSN(测试连接成功后使用) ' connectionString = "DSN=MyMariaDB;" _ ' & "USER=prod1;" _ ' & "PASSWORD=12345;" On Error GoTo ConnectionError conn.Open connectionString MsgBox "连接成功!" conn.Close Exit Sub ConnectionError: MsgBox "连接失败:" & Err.Description End Sub
内容的提问来源于stack exchange,提问作者niall flynn

