|
不行, 我也试过很多次,但没有成功, 这也是我一直想解决的问题.
使用MDE可以实现两层或多层引用,是开发大型管理系统比较好的结构方式, 几年前一直用这种方式开发企业家ERP系统. 引用可达到四层, 也可交叉引用, 不仅可解决单个MDE不能超过2G的问题,也便于程序结构化. 但几年的使用过程中,也有不少缺陷. 看到andymark对此也有研究, 也抛砖引玉谈些心得.
1.引用哪个MDB实际上是codeproject 和currentproject的区别, 但在codeproject必须先建立相应的函数 作为中介
2.底层MDE的函数 窗体 报表 模块均可为上层MDE引用,但引用平级必须通过父亲作为中介
3.这种方式一般要求安装目录因定(三级MDE则更是这样),如果需要不定目录的话,则需要修改注册表,让MDE自动找到需要的下级MDE (像早期autoexec.bat中的path参数一样)
4.如果下级MDE一经修改, 必须从下到上全部重新编绎,研究过看是否可跳过这个重新编绎步骤, 使用一些手段来欺骗父级MDE, 但在xp版本以后有时行有时失效. 如果引用层数多,可自己写个程序自动从下到上编绎,否则, 每天编绎都比较烦人(以前要发布一套程序给客户, 全部编绎时间要达到十多分钟左右)
5.底级MDE的窗体绑定的数据源无法来源于 父级MDE(currentproject),除非使用代码更改recordset ,但又对docmd.openform 的where参数有影响.
6.父级可以引用子级,但子级不能再引用父级的同级
7.引用子级的函数,最好不要加上Project的名称,以免绑定死了,但要求子级的函数最好用特殊的命名的方式保证不与父级同名 |
|