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

在MDB数据库中链接ACCDB数据库表失败问题求助

问题排查与解决方案

核心原因

MDB(Access 2003格式)默认依赖Jet OLEDB引擎,而ACCDB(Access 2007+格式)需要ACE OLEDB引擎驱动,原代码的链接逻辑针对MDB设计,无法兼容ACCDB格式。

具体修复步骤

1. 移除错误屏蔽,定位具体问题

原代码开头的On Error Resume Next会隐藏所有错误信息,先注释或删除该行,运行后弹出的错误提示能直接指向问题点:

' On Error Resume Next  ' 注释或删除此行,查看具体错误

2. 修改ACCDB的连接字符串逻辑

原代码中链接MDB的方式无法适配ACCDB,需要更新TableDef的连接字符串,使用ACE引擎。假设后续代码中链接表的逻辑类似如下(需对应修改你的完整代码):

' 原MDB链接逻辑(示例)
Set TablesLieesDATAIDS = BaseActuel.CreateTableDef("链接表名")
TablesLieesDATAIDS.Connect = ";DATABASE=" & CheminDATAIDS
TablesLieesDATAIDS.SourceTableName = "源表名"
BaseActuel.TableDefs.Append TablesLieesDATAIDS

修改为ACCDB适配的ACE引擎连接字符串:

Set TablesLieesDATAIDS = BaseActuel.CreateTableDef("链接表名")
' 使用ACE OLEDB驱动
TablesLieesDATAIDS.Connect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & CheminDATAIDS
TablesLieesDATAIDS.SourceTableName = "源表名"
BaseActuel.TableDefs.Append TablesLieesDATAIDS

3. 确认ACE驱动已安装

运行MDB的机器必须安装**Microsoft Access Database Engine(ACE)**驱动,否则无法识别ACCDB格式。需下载对应版本(32位/64位,需与Office环境位数一致)安装。

4. 修正文件路径赋值

确保CheminDATAIDS的赋值正确指向.accdb文件:

CheminDATAIDS = Me.CheminDATAIDS & "\dataids.accdb"  ' 确认后缀为.accdb

额外注意事项

  • 如果MDB是32位版本,必须安装32位ACE驱动;64位MDB对应64位驱动,否则会出现位数不兼容错误。
  • 若链接的ACCDB包含加密表,需在连接字符串中添加密码参数:;Jet OLEDB:Database Password=你的密码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:37:03