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

Win7 64位系统下VB6连接MySQL提示ODBC数据源未找到求助

解决VB6在Win7 64位系统下无法连接MySQL的ODBC驱动问题

首先得明确一个关键:VB6是32位程序,它只会识别32位的ODBC驱动,和你的系统是64位没有直接关系——你在64位ODBC管理器(C:\Windows\System32\odbcad32.exe)里看不到MySQL驱动是正常的,那是给64位应用用的;你能在32位ODBC管理器(C:\Windows\SysWOW64\odbcad32.exe)里看到驱动,说明32位驱动安装是没问题的。

针对你的报错[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified,可以按以下步骤排查:

1. 核对连接字符串的驱动名称与细节

确保你代码里的驱动名称和32位ODBC管理器里显示的完全一致,包括空格、版本号。比如你用的MySQL ODBC 5.3 Unicode Driver,要确认32位ODBC里的驱动名称就是这个,没有拼写错误。

另外检查连接字符串里的小疏漏:

sDatabase = "DRIVER={MySQL ODBC 5.3 Unicode Driver};Server=192.168.0.221;Port=3307;UID=root;Password=Pass;Database=Database ;OPTION=3;"

注意Database=Database ;这里的参数值后面多了个空格,会被ODBC当成数据库名称的一部分,建议改成Database=Database;(去掉空格)。

2. 确认VB6项目的ADO引用正确

打开你的VB6项目,进入工程 -> 引用,确保只勾选了一个版本的Microsoft ActiveX Data Objects(推荐用2.8版本,兼容性最好),不要同时勾选多个版本(比如2.1和2.8),这会导致ADO组件冲突,引发驱动加载问题。

3. 手动注册32位ODBC驱动

有时候安装程序可能没正确注册驱动,你可以手动操作:

  • 打开32位命令提示符:找到C:\Windows\SysWOW64\cmd.exe,右键选择「以管理员身份运行」
  • 执行注册命令(路径根据你的实际安装位置调整,默认路径如下):
    regsvr32 "C:\Program Files (x86)\MySQL\MySQL Connector ODBC 5.3\myodbc5w.dll"
    
    执行后如果弹出「DllRegisterServer在xxx.dll已成功」的提示,说明注册成功。

4. 用管理员权限运行VB6

右键VB6编辑器图标,选择「以管理员身份运行」,然后再测试连接。64位系统下,普通权限可能无法正常加载32位驱动组件,导致报错。

5. 用DSN方式验证驱动可用性

先在32位ODBC管理器里创建一个系统DSN:

  1. 打开C:\Windows\SysWOW64\odbcad32.exe
  2. 切换到「系统DSN」标签,点击「添加」
  3. 选择MySQL ODBC 5.3 Unicode Driver,配置好服务器地址、端口、账号密码、数据库名称,测试连接确保成功
  4. 修改你的VB6代码,用DSN连接:
    sDatabase = "DSN=你创建的DSN名称;UID=root;Password=Pass;"
    Set gConn = New ADODB.Connection
    gConn.Open sDatabase
    

如果这样能连接成功,说明驱动本身是正常的,问题出在直接使用驱动的连接字符串上,再回头检查原连接字符串的拼写细节即可。

6. 对比正常运行的64位电脑

和另外两台能正常运行的64位电脑对比以下几点:

  • MySQL ODBC驱动的版本是否完全一致(比如都是5.3.10的32位版本)
  • VB6项目的ADO引用版本是否相同
  • 连接字符串的参数是否有差异
  • 系统是否安装了相同的Win7补丁(部分补丁可能影响ODBC组件的兼容性)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:14:11