Office中国论坛/Access中国论坛

标题: 用ACCESS项目来开发大型应用的问题? [打印本页]

作者: duanpeng@    时间: 2006-6-2 02:58
标题: 用ACCESS项目来开发大型应用的问题?
本人用ACCESS项目作为应用开发平台,SQL数据作为数据引擎,现在为此该ACCESS项目已有8M左右,但一些功能还需增加和完善,文件还会继续增大。

一直有一问题困扰着我:“继续增加会不会引影程序的运行效率?运行后会不会大量占用系统资源?会不会容易损坏文件本身?”

能不能像一些专业的编程环境一样:“一个项目由几类文件构成,例如:窗体文件,类文件,模块文件等,程序运行过程中需要时才调用相应的窗口和代码,以有效利用系统资源,同时提高程序执行效率。”

不知ACCESS项目能不能实现这样的管理方式(例如:窗体一个ADP文件,宏一个ADP文件,模块一件ADP文件)。

希望能听到你看法。[em07]

[此贴子已经被作者于2006-6-1 19:04:44编辑过]


作者: duanpeng@    时间: 2006-6-2 04:37
自己顶!就助
作者: 一点通    时间: 2006-6-2 06:13
我想看一下你8M的前台数据库是如何构成的
作者: tmtony    时间: 2006-6-2 08:42
MDB就可以,ADP也可以,公用窗体一个或多个MDE/ADE,主MDE就引用这几个MDE/ADE就可以了.我现在一个大的项目,分为3--5个MDE,然后由一个主MDE管理. 下面的公共MDE又被多个项目共用.
作者: duanpeng@    时间: 2006-6-2 08:50
我用的是ADP项目方式,没有用BM本地数据库。

你指的前台数据库是指dBM文件吗,在这我的这个应用中基本上没用到DBM文件(本地库),因为我里面有几十万条记录,

我用的是SQL数据库,通过ADP项目通过局域网连接到安装有SQL数据库的服务器,ADP只充当一个应用程序。

本人只是觉得应用功能再增强,该项目文件会再次增大,考虑里面的窗体对像,宏对像,能不能像链接库DLL文件一样单独用一个文件,或多个文件储存。

我的应用在这里不能发布,光SQL数据库就有50多MB,并具安装过程中还要手工注册一些链接库,数据库中的一些初始参数也得手工修改一下,更重要的是数据需要保密的。

我的问题只是想知道ACCESS能还能用这样的方法制作程序。


作者: tmtony    时间: 2006-6-2 08:54
当然可以,但不是拆开窗体 报表 宏为单独一个文件,因为其实查询,宏占很少空间,而窗体 报表占最多空间,最好 的方式是将公用窗体 公用报表,与一些非公用的分开成多个ADE. 然后模块或类模块也可分开(当然也可做DLL文件,在VB中生成,然后在ACCESS中调用DLL就行了)
作者: duanpeng@    时间: 2006-6-2 08:55
以下是引用tmtony在2006-6-2 0:42:00的发言:


MDB就可以,ADP也可以,公用窗体一个或多个MDE/ADE,主MDE就引用这几个MDE/ADE就可以了.我现在一个大的项目,分为3--5个MDE,然后由一个主MDE管理. 下面的公共MDE又被多个项目共用.



由于考虑单个文件存在的问题,正打算“移植”到VB中去,如果能够如你所说的话就太好了,

那么在调用中,肯定要用到代码了,不知您能不能具体讲解一下,或介绍一下这方面的知识,或者能有一个例子。

谢谢![em01]
作者: duanpeng@    时间: 2006-6-2 09:01
这个“主MDE”只能是MDE文件吗,因为我不是商业开发,所以在工作中可能随时存在问题,我想随时修改,

能不能把“主MDE”换成“主ADP”呢,被调文件为ADE文件。
作者: tmtony    时间: 2006-6-2 09:08
原理完成一样,只需底层的公用的几个ADE是你自己控制的,且不让用户修改的,而最上面的ADP可让用户修改窗体和报表,甚至模块. 下面是我以前写的一些东东,你看看是否有参考价值. 具体操作方面太多细节了,则一时也讲不完

http://www.office-cn.net/forum.php?mod=viewthread&tid=34003&replyID=&skin=1
作者: duanpeng@    时间: 2006-6-2 09:14
先谢了!不过我刚才随便做一个ADP项目文档,按提示把默认的2000版转换成ACCESS2003版之后,再生成ADE时,提示“不能创建ADE数据库”,

我用的是WIN2003,office2003,

为什么?
作者: tmtony    时间: 2006-6-2 09:16
编绎一下,看看代码停在哪个地方出错,有可能是引用丢失的问题
作者: duanpeng@    时间: 2006-6-2 16:58
DoCmd.OpenForm "引用的窗体名"

为什么不能打开。是不是得用另一种方式。
作者: duanpeng@    时间: 2006-6-2 17:08
你给的例子我看了,你能举再举些其它例子吗?

例如:打开引用中的窗体

调用引用中的函数/模块(这个例子已有了)

调用引用中的报表


作者: duanpeng@    时间: 2006-6-2 17:32
是不是先得对像实例化。
作者: tmtony    时间: 2006-6-2 18:03
假如a.mde 引用了 b.mde ,首先在 b.mde建立一个公共函数,叫做  gOpenForm (strformName)

代码就是 docmd.OpenForm strFormName (当然你可将打开的各种种参数也当变量传递过来)

然后在a.mde要打开b.mde中的窗体, 则用gOpenform B.mde中的窗体名   就可以了
同样,报表也是用同样的方式.


作者: duanpeng@    时间: 2006-6-2 18:41
很好!按你的提示成功了。非常感谢你。

这方面的知识好像在ACCESS的帮助中没有介绍。

您能多给些这方面知识吗。或学习方法。这方面你是老大嘛!![em01]
作者: tmtony    时间: 2006-6-2 18:51
别客气,这些内容帮助里相对比较大,但要讲起来,也不知从何讲起.我也是因为开发需要,一边摸索,一边总结.
我现在写的新书里面,可能会包含一部分这方面的内容.
作者: duanpeng@    时间: 2006-6-2 23:34
不好意思,窗体是打开了,但又有新问题:

如果我要引用另一引用文件中窗体的控件呢,例如:主控ADP(窗体)打开被引用的窗体B后,B中有一文本框,我在主控中点击一按钮改变B中文本框的值,如何实现。(“由于B窗体不是在主控ADP文档中,用平常的操作方式程序提示‘要求对像’”)

还得请你指点高招。再讲讲在这样的开始模式下应注意些什么问题。介绍些要点吧!
作者: duanpeng@    时间: 2006-6-3 05:16
再次顶一下。
作者: tmtony    时间: 2006-6-3 07:21
奇怪,已经回复了,怎么不见了.引用 forms("B").控件名.属性, 用此方面可引用任何窗体(不管在哪个MDE中的窗体)
但从经验上讲,我习惯将我所有的公共窗体的名称 命名为 frmTmPub实际窗体名,而非公共窗体 命名为 frm实际窗体名.这样,在两个MDE中就不会有同名窗体的情况,这样就保证,唯一的窗体名可唯一确定一个窗体(在所有的MDE中)


作者: duanpeng@    时间: 2006-6-4 00:00
看过后按你的方法试了试,并没有成功。但我仔细阅读帮助:

以下代码存在于A主文件中。

隐式地引用 Controls 集合

Forms("form_b")!text_b = Me.Text1 ''成功

显式地引用 Controls 集合
Forms("form_b").text_b = Me.Text1 ''失败

小结:对于Controls 集合,用“.”比较适合自身工程控件引用;用“!”两种情况都适合,但编写代码时不方便。

不知我的理解对不[em08]
作者: yanghua1900363    时间: 2009-4-19 15:48
19# duanpeng@
作者: yanghua1900363    时间: 2009-4-19 15:49
17# tmtony
作者: yanghua1900363    时间: 2009-4-19 15:55
我很想看到用access项目开发大型应用程序的书籍,如果方便给我一个教程的目录,我先看一下。如果合适买一本没什么大不了的。 先谢过!我的联系方式:QQ:757994448  yanghua363@hotmail.com




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