设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 22176|回复: 9
打印 上一主题 下一主题

[Access本身] 误:"不能打开数据库,因为其中包含 VBA 项目不能读取.....

[复制链接]
跳转到指定楼层
1#
发表于 2014-9-28 15:39:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在我自己的电脑上运行main.mdb时没有问题,在别人电脑上运行时出现此错误:"不能打开数据库,因为其中包含 VBA 项目不能读取。首先删除 VBA 项目的情况下,才可以打开数据库。删除 VBA 项目中的所有代码都删除模块、 窗体和报表。应该尝试打开该数据库并删除 VBA 项目之前备份您的数据库。"
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享分享 分享淘帖 订阅订阅
推荐
发表于 2014-9-28 16:36:25 | 只看该作者
本帖最后由 roych 于 2014-9-28 16:39 编辑

应该是access安装或者卸载时不干净所导致。另外,建议使用英文名的模块和函数过程名称(不要使用默认的“模块1”),这样出错的机会会少一些。
回复 支持 0 反对 1

使用道具 举报

点击这里给我发消息

3#
发表于 2014-9-30 09:31:38 | 只看该作者
可能的主要原因是因为你你的窗体对象或控件有中文名
1.把所有窗体上的控件名改为英文,对应的事件要重新改一下
2.把窗体对象,如主体 窗体页眉 页脚改为英文名
保证所有对象为英文后.再重新在原电脑运行后正常后,再生成
4#
 楼主| 发表于 2014-9-30 10:17:18 | 只看该作者
之前我在网上看到这样一个答案,但是还是解决不了问题。答案如下:

错误消息:"因为不能读取其中包含 VBA 项目,无法打开数据库"后省N字!
微软官方给出的解释是:
http://support.microsoft.com/kb/2581301/zh-cn,
http://support.microsoft.com/kb/2533794/zh-cn

并没有实质的解决办法,我在网上查了国内外的相关回复,亦无实质性的解决办法。
今天弄了整整一天,最后发现原来是应为VBA7.0版本问题。废话少说,直接上解决方案:
系统环境:
Windows 8 专业版
Microsoft Office 2010 企业版 V 14.0.6129.5000(32位)
VBE7 V 7.0.16.27

项目文件直接编译,在宿主机上运行无问题。在其他客户机上无法运行,出现无法读取VBA项目错误。
客户机系统环境:
Windows XP 专业版
Access 2010 Runtimes
Access 2010 Runtimes SP1

出现这样的问题是由于微软VBE7文件编译出错,不知道是不是设计缺陷,反正只要是主版本 V 7.0.的编译后都是这个问题的。
解决方法很简单:
第一步、关掉所有Office文件;
第二步、打开”C:\Program Files\Common Files\microsoft shared\VBA“,你会发现有三个文件夹,分别是:VB6、VB7、VB7.1,将VB7改名,随便你喜欢的名字,改完后将“VB7.1”的“.1”去掉。相信到了这里聪明的你已经知道我的目的了,没错就是要用VBA7.1编译项目。笔者的VBA7.1的版本是7.1.10.33,见附件!
第三步、打开项目文件,生产ACCDE文件,过程不表。操作完成,享受吧!


应该不是你说的这个问题,他们的操作系统也是中文版的,而且里面的对象全是英文命名的啊!
大神,你能不能帮帮我啊,我开发的数据库只能在自己电脑上用,在别人电脑上不能用,我都快烦死了!
5#
 楼主| 发表于 2014-9-30 10:18:18 | 只看该作者
本帖最后由 yumendaxia 于 2014-9-30 10:20 编辑
tmtony 发表于 2014-9-30 09:31
可能的主要原因是因为你你的窗体对象或控件有中文名
1.把所有窗体上的控件名改为英文,对应的事件要重新改 ...

之前我在网上看到这样一个答案,但是还是解决不了问题。答案如下:

错误消息:"因为不能读取其中包含 VBA 项目,无法打开数据库"后省N字!
微软官方给出的解释是:
http://support.microsoft.com/kb/2581301/zh-cn,
http://support.microsoft.com/kb/2533794/zh-cn

并没有实质的解决办法,我在网上查了国内外的相关回复,亦无实质性的解决办法。
今天弄了整整一天,最后发现原来是应为VBA7.0版本问题。废话少说,直接上解决方案:
系统环境:
Windows 8 专业版
Microsoft Office 2010 企业版 V 14.0.6129.5000(32位)
VBE7 V 7.0.16.27

项目文件直接编译,在宿主机上运行无问题。在其他客户机上无法运行,出现无法读取VBA项目错误。
客户机系统环境:
Windows XP 专业版
Access 2010 Runtimes
Access 2010 Runtimes SP1

出现这样的问题是由于微软VBE7文件编译出错,不知道是不是设计缺陷,反正只要是主版本 V 7.0.的编译后都是这个问题的。
解决方法很简单:
第一步、关掉所有Office文件;
第二步、打开”C:\Program Files\Common Files\microsoft shared\VBA“,你会发现有三个文件夹,分别是:VB6、VB7、VB7.1,将VB7改名,随便你喜欢的名字,改完后将“VB7.1”的“.1”去掉。相信到了这里聪明的你已经知道我的目的了,没错就是要用VBA7.1编译项目。笔者的VBA7.1的版本是7.1.10.33,见附件!
第三步、打开项目文件,生产ACCDE文件,过程不表。操作完成,享受吧!


应该不是你说的这个问题,他们的操作系统也是中文版的,而且里面的对象全是英文命名的啊!
大神,你能不能帮帮我啊,我开发的数据库只能在自己电脑上用,在别人电脑上不能用,我都快烦死了!

点击这里给我发消息

6#
发表于 2014-9-30 10:28:23 | 只看该作者
即使是中文版,有时也会存在这个问题
在有些电脑环境下测试过
最简单的方法,你将一个窗体这个修改好,生成一个独立的MDB.复制到新电脑测试
7#
 楼主| 发表于 2014-9-30 12:49:59 | 只看该作者
tmtony 发表于 2014-9-30 10:28
即使是中文版,有时也会存在这个问题
在有些电脑环境下测试过
最简单的方法,你将一个窗体这个修改好,生成 ...

我在网上找到一个网友也是遇到这个问题,点击命令按钮的时候就会出现那个错误,而且后台代码打不开。因为我的程序在您的电脑上可能可以正常运行,不具有代表性,我把它的程序上传给一下,麻烦您看一看。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

8#
发表于 2014-10-9 06:51:06 来自手机 | 只看该作者
有时 的确如此 红尘老师有—个打印空行报表的 不能直接引用控件 只能 FOR Each ctl in ctrls

但有的却又可以

点击这里给我发消息

9#
发表于 2016-1-1 20:39:37 | 只看该作者
我要附件
回复

使用道具 举报

10#
发表于 2017-1-15 11:03:11 | 只看该作者
学习~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-28 21:38 , Processed in 0.097904 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表