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

Access 32/64位兼容改造后VBA项目读取失败问题求助

Access 32位/64位兼容改造后VBA项目读取错误问题

需求背景

客户要求Access系统可在32位与64位环境下运行。

示例兼容代码

' Windows API
#If Win64 Then
' 64Bit
Declare PtrSafe Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal Flags As LongPtr, ByVal ProcessID As LongPtr) As LongPtr
Declare PtrSafe Function Process32First Lib "kernel32" (ByVal hSnapshot As LongPtr, ByRef ProcessEntry As PROCESSENTRY32) As LongPtr
Declare PtrSafe Function Process32Next Lib "kernel32" (ByVal hSnap As LongPtr, ByRef ProcessEntry As PROCESSENTRY32) As LongPtr
Declare PtrSafe Function CloseHandle Lib "kernel32.dll" (ByVal hObject As LongPtr) As LongPtr
#Else
Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal Flags As Long, ByVal ProcessID As Long) As Long
Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, ByRef ProcessEntry As PROCESSENTRY32) As Long
Declare Function Process32Next Lib "kernel32" (ByVal hSnap As Long, ByRef ProcessEntry As PROCESSENTRY32) As Long
Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As LongPtr) As Long
#End If

问题现象

将32位Access的.accdb文件改造为64位兼容后,在64位Access中运行正常,但切换回32位Access打开时出现**「无法打开数据库,因为其中的VBA项目无法读取」**错误;仅一台32位机器可正常打开该文件,调整Access选项设置无效。

复现步骤

  • 在32位Access中打开.accdb文件
  • 修改VBA代码以适配64位环境
  • 测试流程:32位Access正常运行 → 64位Access正常运行 → 再次打开32位Access触发报错

补充信息

在64位环境打开报错时,部分引用丢失,但Visual Basic For Application的引用路径保持为「C:\Program Files (x86)\Microsoft Office\root\vfs\ProgramFilesCommonX86\Microsoft Shared\VBA\VBA7.1」;推测因VBA文件不可读导致引用声明无法加载,文件本身未损坏。

相关截图说明

  • 错误提示截图:显示「无法打开数据库,因为其中的VBA项目无法读取」的错误弹窗
  • 未损坏文件状态截图:展示正常状态下的文件引用及VBA项目信息
  • 64位运行后疑似损坏文件截图:展示经过64位Access运行后,文件的异常状态
  • 引用路径截图:显示Visual Basic For Application的引用路径详情

内容的提问来源于stack exchange,提问作者Lộc Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:33:17