发新话题
打印

提高拆分数据库在网上运行、编辑的速度

提高拆分数据库在网上运行、编辑的速度


数据库拆分的优点和必要性想必各位都明白,一旦把后端库放到了局域网上(无论对等网、局域网),前端运行速度将大为减缓,特别是在前端修改查询、窗体更为缓慢,这种情况在论坛中经常提及,但始终不能找到满意的答案。  
2 }, t& \1 x' o. v- j& ^
/ h' x9 H) ]0 U& S) k前段时间,无意中发现了网友发布的相关帖子,原文如下:  1 U3 e& P' r0 W( w
, R7 u: f! m- G/ f6 z. R
问:我的单位已连局域网,有一台SERVER2000服务器,有四台WIN98工作站。共同使用ACCESS调用服务器上的库文件SERVER.MDB。2 m5 {" [! |5 r3 r/ g
现在的解决方法是在服务器上建一共享目录存共享库文件SERVER.MDB
7 K, P" P6 v& b' \) ~工作站上用链接表对此相连,但是总觉得两人以上运行时速度太慢。
3 s! j! {9 e2 [0 O! O7 g请问是不是有更好的方法?3 Q) y- ?: T6 ~
答:其实不慢,只是需要技巧
& c+ ^! E4 T! t9 D" o& aDimcnAsConnection
: Q  A* {! |0 }8 Z, o  p' cDimrsAsNewADODB.Recordset
8 B8 Z: ^1 H  b6 F4 wDimsqlAsString9 e" x$ a4 n. }7 r5 i3 n
Setcn=CurrentProject.Connection
( P8 D. A. p3 u4 W4 zsql="select*from1"
7 y( \: J& V0 s% p* p8 |% B/ ers.Opensql,cn,3,3,1  
+ J, V, u" `2 a( s& N8 O$ @# O' @% W, @6 a8 G5 [
你的软件最好有个主控面板,一打开软件它就打开,关闭软件它才关闭。在后台数据库文件里建一个只有一个字段的空表,名为1(其它名也可以),然后把上面的代码放在主控面板的OPEN事件里。  $ @! m; C# x2 [
/ C: W& t# U- |) @% _4 Q
这里面用到的小技巧就是:打开了一个空表,但没关闭它,这样后台数据库就一直在打开状态(你可以看到后台数据库会生成一个LDB文件),你要操作其它表的时候就不用频繁地打开、关闭后台数据库,这样程序运行起来可以提升级几倍的速度,试试看吧。  ) V1 K# B) q  _5 r- z2 X: p
8 u. T* s  Z& D- ]: o8 S2 y* }
其中谈到,在前端数据库中打开一个链接自后端的表,让起一直开着,“这样程序运行起来可以提升级几倍的速度”,讲的的确有道理,但是,我看不懂代码的意思,照本宣科也不行,只得束之高阁.....遗憾!!  
  [+ M( d7 R4 \# r* M' Q2 @5 b7 ~( l) h& ?7 Y+ w0 q+ G5 J$ k2 N
前几天下载了一个后端监测软件,可以看到有谁正在使用后端文件,虽然用处不大,但却带来意外收获,运行监测软件后,在前端编辑和修改查询、窗体时,速度大为提高,为什么呢?几经分析和实践,终于找到一种简便的方法来达到提高运行速度的目的!!不敢独享,在此提供给各位需要的朋友,以解燃眉之急。  
8 J1 I/ Q4 p3 @2 _+ E  r
; `- m( R/ _3 H1、在后端创建一个只有一个字段的表。不要输入任何数据。2 u  u4 d: P. e# P- F% q% L+ W" q$ r
2、链接到前端数据库中。: l! a3 V* t3 T/ o
3、在前端中建立该表的窗体,任何形式都行,越简单越好。
/ X% p$ l& t! A  m& u+ D4、编写以隐藏方式打开该窗体的代码或宏命令。
! U2 y% Q# b2 C8 L7 j0 h5、在切换面板的打开事件中运行打开命令,这样每当数据库打开,自然就会打开该窗体,直到关闭数据库为止。  
. G2 t3 H& L2 _' I9 w, V. O% Z" p4 k. P: _
这样一来就达到了“不用频繁地打开、关闭后台数据库”的目的,速度自然提高许多。
, i* p8 G4 b0 U9 @: O% p9 d! P: k上面提到的代码,想来肯定有用,为什么没有效果呢?如用代码以隐藏的方式直接打开表,岂不更好,还可以省掉一个窗体,还望VBA高手解答。  2 j3 E  Z+ q/ f9 t, T4 A5 m
# v5 o6 k0 s* T; Z" p
隐藏方式打开该窗体



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题