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

ADODB连接32位Access 2010失败求助:ODBC驱动报错IM002

解决32/64位混合环境下ADODB连接Access的问题

你的判断完全正确,这个报错几乎可以确定是32位与64位环境不兼容导致的,结合你的配置,给你几个具体的解决步骤:

1. 用对32位ODBC数据源管理器

Windows 7 64位系统默认打开的ODBC管理器(C:\Windows\System32\odbcad32.exe)是64位的,根本找不到你装的32位Access驱动。你得打开32位专属的ODBC管理器:

  • 直接运行路径:C:\Windows\SysWOW64\odbcad32.exe
  • 在这个管理器里,创建一个「用户DSN」或「系统DSN」,选择Microsoft Access Driver (*.mdb, *.accdb)驱动,指向你的PhpPlay.accdb文件

2. 调整ADODB的连接代码

方式一:用DSN连接

如果已经创建好DSN,修改你的连接代码:

include("C:\php\adodb5\adodb.inc.php");
$db = NewADOConnection("access");
// 填你刚才创建的DSN名称,Access默认无用户名密码,留空即可
$db->Connect("你的DSN名称", "", "", "");

方式二:直接用连接字符串(无需DSN)

不想创建DSN的话,用完整的32位驱动连接字符串就行,注意路径里的反斜杠要转义,或者直接换成正斜杠:

include("C:\php\adodb5\adodb.inc.php");
$db = NewADOConnection("access");
// 转义反斜杠版本
$connStr = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:\\...\\PhpPlay.accdb;";
// 或者用正斜杠(更省心)
// $connStr = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:/.../PhpPlay.accdb;";
$db->Connect("", "", "", $connStr);

3. 确认PHP是32位版本

32位的Access驱动只能和32位程序交互,如果你用的是64位PHP,肯定找不到驱动。检查方法:

  • 新建一个php文件,写入<?php phpinfo(); ?>
  • 访问这个文件,找到Architecture项,确认是x86(32位),如果是x64,赶紧换成对应版本的32位PHP

4. 先测试原生ODBC连接(排除ADODB问题)

如果还是报错,可以先跳过ADODB,用原生PHP的odbc_connect测试,确认驱动和路径没问题:

$conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:/.../PhpPlay.accdb;", "", "");
if (!$conn) {
    die("连接失败:" . odbc_errormsg());
}
echo "连接成功!";
odbc_close($conn);

要是这个测试能成功,再换回ADODB的方式,就能定位是不是ADODB的配置问题。

额外提醒

  • 确认你的32位Access 2010安装正常,在32位ODBC管理器的「驱动」标签里能看到Microsoft Access Driver (*.mdb, *.accdb)
  • 如果Access文件路径有中文或空格,建议移到无中文无空格的路径下,避免编码或解析坑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:47:42