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

旧VB+MSAccess程序迁移至新电脑报Run-time Error 91问题求助

可尝试的配置修复操作
  • 调整文件与目录权限:给存放MDB文件、EXE程序的目录赋予当前登录用户完全控制权限,同时取消MDB文件的「只读」属性。老VB程序运行时会生成临时锁文件,权限不足会导致数据库对象初始化失败但不会直接抛出权限错误,最终触发91报错。
  • 确认ODBC驱动位数匹配:绝大多数老VB程序为32位架构,如果你之前是通过系统默认的64位ODBC管理器创建的数据源,会出现连接成功但无法读取数据的问题。请打开C:\Windows\SysWOW64\odbcad32.exe(32位ODBC管理器),删除原有数据源后重新创建同名、指向目标MDB的32位数据源。
  • 修复MDB文件隐性损坏:手动可打开的MDB也可能存在索引、表关联的轻度损坏,打开对应版本的Access客户端,执行压缩和修复数据库操作,修复后再尝试运行程序。
  • 调整运行路径格式:将程序、MDB文件整体迁移到D:\OldApp这类全英文、无空格、无特殊字符的路径下运行,老VB程序对中文路径兼容性极差,路径解析失败会导致记录集对象为空。
  • 安装匹配版本的Access运行时:根据MDB对应的Access版本(97/2000/2003)安装对应版本的Access Runtime,避免高版本运行时的DAO/ADO组件不兼容问题。
探查VB程序访问MDB逻辑的工具
  • Process Monitor:过滤目标EXE进程,监控文件、注册表、网络操作,可直观看到程序尝试访问的表名、组件调用路径、操作失败的节点。
  • ODBC跟踪日志:在ODBC管理器的「跟踪」选项卡开启日志记录,运行程序到报错后查看日志,可获取完整的数据库连接参数、执行的SQL语句、返回的错误码,定位是否是SQL执行失败导致对象未赋值。
  • VB反编译工具:针对VB6编译的EXE,使用VB Decompiler可反编译得到伪代码,直接查看数据库连接字符串、查询逻辑的写死配置,确认是否存在路径硬编码、表名/字段名匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:24:03