Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 综合其它

浅谈access客户端程序发布后的自动升级

时 间:2009-09-04 10:25:40
作 者:张强   ID:7297  城市:深圳
摘 要:浅谈ACCESS客户端程序发布后的自动升级
正 文:

浅谈ACCESS客户端程序发布后的自动升级

 

Access应用系统的建立,要完成网络环境下的多用户共享使用,需要完成三个步骤:数据库分割、数据表链接、把程序发布到各客户端(注:此处程序是指数据库分割后的客户端数据库文件,它没有数据表,但含有查询、窗体、报表、宏、模块等)

第一次把程序发布到各客户端是必须的(此处不详述),但应用系统的建立,不是一朝一夕的,往往是程序发布后,又不断的调试完善,不断的增加新的功能,于是又不断的发布新的程序,这样循环往复的分发作业,一是工作量大不经济,二是容易遗掉一些客户端用户。

如何解决客户端应用程序的自动升级呢,经摸索找出一种方法,试验后效果很好,现介绍如下:

 

一、升级思路概述:

客户端在运行程序登录时,增加程序版本号的检测,如果是新的,则正常入网操作,如果是旧版本的,则提示需要升级。在升级程序时要注意,因为客户端程序本身已打开无法复制自已,所以这里就有一个小技巧,用客户端程序调用另一个程序(另一数据库)进行升级,升级前先关闭掉本身。

 

二、环境说明:

服务器:操作系统为WINDOWS 2003 企业版,计算机名为hy5000,新建共享目录为sc2008,数据库的存放于共享目录下的obs-sc子目录中。

客户端:操作系统为XP,装有Access 2003,客户端应用程序bag.mde(编译过),安装(实际上拷贝)于D:\obs-sc目录下。

应用程序:要发布的客户端应用程序为bag.mde,存放于另一台Web服务器上,具体位置为:\\asp\obs2008\培训网站\obs最新程序\OBS-链接表后最新\,其所要调用的升级程序(生产程序升级.mdb)及调用的外部文件(OBS生产程序升级.bat)也存在该目录下

三、预备工作

1、建立客户端应用程序所要调用的升级程序(生产程序升级.mdb),打开ACCESS,新建一数据库命名为“生产程序升级.mdb”,内建一窗体名为“OBS生产程序更新”,该窗体上建一命令按钮,名为“开始升级”即可。

2、建立要调用的外部可执行文件:OBS生产.bat

以上两文件的内部代码在下面涉及时再说明,保存在环境说明中的位置,即“\\asp\obs2008\培训网站\obs最新程序\OBS-链接表后最新\

四、具体实施步骤

1、判断客户端程序的版本号以确定是否需要升级

1)、在客户端的应用程序bag.mde的登录界面上增加一个文本框控件,命名为“软件版本号”,在属性表中数据默认值填入一个数值(即开发软件的版本号,例如填入数值6.1

2)、在服务器的数据库中增加“软件版本”表,表内增加一数字字段“版本号”,双精度型,小数位数为1,然后增加一条记录,值为6.1

3)、在登录界面上的“用户登录”按钮的单击事件中加入如下代码:

01   If Me![软件版本号] <> DLookup("版本号", "软件版本", "") Then

02          Dim strDB As String

03          Dim appAccess

04          Const strConPathToSamples = "\\asp\obs2008\培训网站\obs最新程序\OBS-链接表后最新\"

05          strDB = strConPathToSamples & "生产程序升级.mdb"   

06          Set appAccess = CreateObject("Access.Application")

07          appAccess.OpenCurrentDatabase strDB

08          appAccess.DoCmd.OpenForm "OBS生产程序升级"

'关掉本数据库,以便复制自已(覆盖掉)

09          DoCmd.Quit acQuitSaveNone

10   End If

 

假如我们有新的版本要发布(比如6.3版),需要做以下工作:(1)文本框控件“软件版本号”的数据默认值应改为6.3并编译成客户端程序放到服务器上,(2)修改“软件版本”表版本号值为6.3

程序说明:

01行代码是判断客户端程序的版本号是否需要升级,在这里,客户在登录时,由于6.1不等于6.3,则0405行代码先从网络服务器的“\\asp\obs2008\培训网站\obs最新程序\OBS-链接表后最新\”位置调用程序“生产程序更新.mdb”,08行运行该程序内窗体“OBS生产程序升级”,09行程序在调用后关掉客户端应用程序(bag.mde)本身

2、升级

如果确认调用升级程序,则打开“生产程序更新.mdb”从而运行“OBS生产程序升级”窗体,单击窗体上的 “开始升级”按钮即可升级。其按钮单击事件的代码如下:

01   CreateObject("wscript.shell").Run """\\asp\obs2008\培训网站\obs最新程序\OBS-链接表后最新\OBS生产.bat""", 0

02   MsgBox "升级成功!"

03   DoCmd.Quit acQuitSaveNone

 

程序说明:

01行代码从“\\asp\obs2008\培训网站\obs最新程序\OBS-链接表后最新\“位置调用外部文件“OBS生产.bat

注:外部文件“OBS生产.bat”的内容如下:

rd   /s/q d:\obs-sc

md  d:\obs-sc

copy \\asp\obs2008\培训网站\obs最新程序\OBS-链接表后最新\bag.mde   d:\obs-sc

del /q  C:\Docume~1\AllUse~1\桌面\bag.mde

copy  D:\obs-sc\bag.mde   C:\Docume~1\AllUse~1\桌面\

外部文件“OBS生产.bat代码说明:

12行命令是删除d:\obs-sc目录及其下所有文件,然后再建立,第3行命令是把客户端程序拷贝到d:\obs-sc目录下,45命令是删除桌面上的bag.mde快捷键图标,再把d:\obs-sc目录下的客户端应用程序bag.mde重新发送到桌面上。



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助