浅谈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,则04、05行代码先从网络服务器的“\\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代码说明:
1、2行命令是删除d:\obs-sc目录及其下所有文件,然后再建立,第3行命令是把客户端程序拷贝到d:\obs-sc目录下,4、5命令是删除桌面上的bag.mde快捷键图标,再把d:\obs-sc目录下的客户端应用程序bag.mde重新发送到桌面上。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)
- SqlServer中如何用SQL命...(10.29)
- Access报表中的分组功能用代码...(10.28)
- 用Access计算库存结余的一个方...(10.26)
- 最精简的组合框行来源数据快速输入(...(10.25)