Office中国论坛/Access中国论坛

标题: 为何不能生成mde文件 [打印本页]

作者: tonycao    时间: 2009-3-30 17:51
标题: 为何不能生成mde文件
用的是access2003,点击‘生成mde文件’后,要求输入生成文件名,输好后点‘保存’就不动了,也没有报错,过一会就显示不响应,在指定的目录下会产生一个db1.mdb的文件;这时如果强行关掉access,再打开重新运行‘生成mde文件’,在相应目录下又生成db2.mdb文件。我上网查过不能生成mde主要有两种原因,一是程序本身有错,但我的在mdb下是可以运行的,二是可能有外部链接库或副本,我的是没有的。请大家帮忙
作者: 82077802    时间: 2009-3-30 20:15
第一,把数据库格式转成2002的,菜单 ( 工具 -> 数据库实用工具 -> 转换数据库 )
第二,到VBE界面里面,把数据库编译一遍,菜单 ( 调试 -> 编译 )
第三,别用盗版!<- 盗版有时候的确有此问题!

2、
转到 VBE(Visual Basic Edit) 界面,调试菜单 -> 编译 .... ,先编译一下整个数据库,如果发现错误,比如变量没有声明,类没有声明等等,Access会提醒你的,你只要按提醒修正错误部分就可以编译了。
作者: Henry D. Sy    时间: 2009-3-30 22:45
编译,压缩,生成mde
作者: tonycao    时间: 2009-3-31 18:10
第一,把数据库格式转成2002的,菜单 ( 工具 -> 数据库实用工具 -> 转换数据库 )
第二,到VBE界面里面,把数据库编译一遍,菜单 ( 调试 -> 编译 )
第三,别用盗版! 编译 .... ,先编译一下整个数据库,如果发现错 ...
82077802 发表于 2009-3-30 20:15


首先谢谢82077802
第一,这步已经作过了,因为不转换的话,默认出来的是Access2000,不能生成Mde
第二,我的程序在mdb下是可以运行的
第三,我们公司应该都是正版吧

再帮我想想还有什么可能。
作者: liuxiue    时间: 2009-4-2 08:33
此问题我也遇到过,当打开db1.mde的时候会提示找不到文件!可能里面真的有程序编写错误吧(虽然在mdb下完全可以运行)!
我的解决办法:我是把所作系统的表,查询、窗体等一个一个的导出!比如从a(有错误的,不能生成mde文件的那个)导出到b(新建的)吧!每导出一个到b,你都试着把b生成mde文件,一般是可以的,当不能生成的时候,那错误的就是你刚导入的那个了!

    我遇到的问题是一个文本框控件的编程出现的问题,编译可以通过,而且mdb下可以运行,可是仍然生成不了mde文件!后来我换了一种思路,就是这个文本框控件删除了,就好了!不知道什么原因!
作者: 阿六爱狗    时间: 2009-4-3 10:57
学习中
作者: tonycao    时间: 2009-4-3 17:15
我的没有生成mde文件,到是又生成一个mdb文件,不过我觉得你说的挺有道理的,我去试一下
作者: tonycao    时间: 2009-4-3 17:36
把其中的窗体、表、宏都导入到另一个文件中,生成mde时终于看到错误了,具体如下,不是很明白,哪位朋友能给解释一下
=======================
此错误通常与将大型数据库编译到 MDE 文件有关。由于用于编译数据库的方法的原因,每一张表都创建了相当多的 TableID 引用。Microsoft Jet 数据库引擎版本 4.0 一次最多只能创建 2048 个开放式 TableID。如果数据库有大量对象(表、宏、窗体、报表等等),则将数据库导出为 MDE 可能会超出此限制。

There is no accurate method to estimate the number of 没有适当的方法估算 Jet 数据库引擎在将数据库编译为 MDE 过程中使用的 TableID 数。但是每个 VBA 模块和每个窗体都使用一个 TableID,因此,如果数据库有 500 个窗体,并且每个窗体的 HasModule 属性都设置为“是”,则就等于使用 1000 个 TableID。
======================
作者: wjsfeng    时间: 2009-4-3 20:51
谢谢,我前几天遇到这个问题了,当时没有解决,现在看看了帖子,很受用,谢谢了
作者: 4420    时间: 2009-11-2 23:35
学习了




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3