从“不能打开数据库,因为其中包含 VBA 项目不能读取” 谈Access 2010与Access 2010 SP1 补丁的兼容问题

2017-08-10 21:51:00
zstmtony
原创
81

从“不能打开数据库,因为其中包含 VBA 项目不能读取” 谈Access 2010与Access 2010 SP1 补丁的兼容问题


有不少使用Office中国的Access通用开发平台的网友常常遇到这样的问题,在他自己开发的电脑上运行main.mdb时没有问题,在别人电脑上运行时出现此错误:

"不能打开数据库,因为其中包含 VBA 项目不能读取。首先删除 VBA 项目的情况下,才可以打开数据库。删除 VBA 项目中的所有代码都删除模块、 窗体和报表。应该尝试打开该数据库并删除 VBA 项目之前备份您的数据库。"



错误消息的主要内容是:"因为不能读取其中包含 VBA 项目,无法打开数据库"

微软官方相关的文章:
http://support.microsoft.com/kb/2581301/zh-cn,
http://support.microsoft.com/kb/2533794/zh-cn


原因主要是因为VBA7.0版本问题。 即这个VBA7.0编绎生成的Accde在其它VBE7.1或更高版本的电脑上运行会出错

现象重现:
1)如开发系统环境:
Windows 8 专业版
Microsoft Office 2010 企业版 V 14.0.6129.5000(32位)
VBE7 V 7.0.16.27

2)  客户机系统环境:
Windows 7
Access 2010 SP1

则Access数据库文件编译后,在开发电脑上运行无问题。在相关客户机上无法运行,出现无法读取VBA项目错误。无法运行。

解决办法:


1.将旧版的VBA7.0替换成 VBA7.1或更高版本

网友MorningAir曾经提供一个 VBA7.1版,请到这里下载:

http://www.office-cn.net/thread-116518-1-1.html

2.直接安装Office 2010 Sp1 补丁包更新一下

Office 2010 Sp1 补丁下载(包含了Access 2010 Sp1) :

下载: http://www.access-cn.com/download/836-cn.html


然后使用新的版本生成 mde 或 accde 即可


注意:Access 2010 runtime 与 Access 2010 runtime sp1 也存在类似的问题。



其它可能的原因是因为你你的窗体对象或控件有中文名
1.把所有窗体上的控件名改为英文,对应的事件要重新改一下
2.把窗体对象,如主体 窗体页眉 页脚改为英文名
保证所有对象为英文后.再重新在原电脑运行后正常后,再生成



相关Access技巧:

Access 2007 无法打开Access 2007 Sp1 或 Access 2010 或 Access 2013 或 Access 2016 版本创建的文件




分享
发表评论
评论通过审核后显示。