時(shí) 間:2009-9-4 10:25:40
作 者:張強
摘 要:淺談ACCESS客戶(hù)端程序發(fā)布后的自動(dòng)升級
正 文:
淺談ACCESS客戶(hù)端程序發(fā)布后的自動(dòng)升級
Access應用系統的建立,要完成網(wǎng)絡(luò )環(huán)境下的多用戶(hù)共享使用,需要完成三個(gè)步驟:數據庫分割、數據表鏈接、把程序發(fā)布到各客戶(hù)端(注:此處程序是指數據庫分割后的客戶(hù)端數據庫文件,它沒(méi)有數據表,但含有查詢(xún)、窗體、報表、宏、模塊等)
第一次把程序發(fā)布到各客戶(hù)端是必須的(此處不詳述),但應用系統的建立,不是一朝一夕的,往往是程序發(fā)布后,又不斷的調試完善,不斷的增加新的功能,于是又不斷的發(fā)布新的程序,這樣循環(huán)往復的分發(fā)作業(yè),一是工作量大不經(jīng)濟,二是容易遺掉一些客戶(hù)端用戶(hù)。
如何解決客戶(hù)端應用程序的自動(dòng)升級呢,經(jīng)摸索找出一種方法,試驗后效果很好,現介紹如下:
一、升級思路概述:
客戶(hù)端在運行程序登錄時(shí),增加程序版本號的檢測,如果是新的,則正常入網(wǎng)操作,如果是舊版本的,則提示需要升級。在升級程序時(shí)要注意,因為客戶(hù)端程序本身已打開(kāi)無(wú)法復制自已,所以這里就有一個(gè)小技巧,用客戶(hù)端程序調用另一個(gè)程序(另一數據庫)進(jìn)行升級,升級前先關(guān)閉掉本身。
二、環(huán)境說(shuō)明:
服務(wù)器:操作系統為WINDOWS 2003 企業(yè)版,計算機名為hy5000,新建共享目錄為sc2008,數據庫的存放于共享目錄下的obs-sc子目錄中。
客戶(hù)端:操作系統為XP,裝有Access 2003,客戶(hù)端應用程序bag.mde(編譯過(guò)),安裝(實(shí)際上拷貝)于D:\obs-sc目錄下。
應用程序:要發(fā)布的客戶(hù)端應用程序為bag.mde,存放于另一臺Web服務(wù)器上,具體位置為:\\asp\obs2008\培訓網(wǎng)站\obs最新程序\OBS-鏈接表后最新\,其所要調用的升級程序(生產(chǎn)程序升級.mdb)及調用的外部文件(OBS生產(chǎn)程序升級.bat)也存在該目錄下
三、預備工作
1、建立客戶(hù)端應用程序所要調用的升級程序(生產(chǎn)程序升級.mdb),打開(kāi)ACCESS,新建一數據庫命名為“生產(chǎn)程序升級.mdb”,內建一窗體名為“OBS生產(chǎn)程序更新”,該窗體上建一命令按鈕,名為“開(kāi)始升級”即可。
2、建立要調用的外部可執行文件:OBS生產(chǎn).bat
以上兩文件的內部代碼在下面涉及時(shí)再說(shuō)明,保存在環(huán)境說(shuō)明中的位置,即“\\asp\obs2008\培訓網(wǎng)站\obs最新程序\OBS-鏈接表后最新\”
四、具體實(shí)施步驟
1、判斷客戶(hù)端程序的版本號以確定是否需要升級
(1)、在客戶(hù)端的應用程序bag.mde的登錄界面上增加一個(gè)文本框控件,命名為“軟件版本號”,在屬性表中數據默認值填入一個(gè)數值(即開(kāi)發(fā)軟件的版本號,例如填入數值6.1)
(2)、在服務(wù)器的數據庫中增加“軟件版本”表,表內增加一數字字段“版本號”,雙精度型,小數位數為1,然后增加一條記錄,值為6.1
(3)、在登錄界面上的“用戶(hù)登錄”按鈕的單擊事件中加入如下代碼:
01 If Me![軟件版本號] <> DLookup("版本號", "軟件版本", "") Then
02 Dim strDB As String
03 Dim appAccess
04 Const strConPathToSamples = "\\asp\obs2008\培訓網(wǎng)站\obs最新程序\OBS-鏈接表后最新\"
05 strDB = strConPathToSamples & "生產(chǎn)程序升級.mdb"
06 Set appAccess = CreateObject("Access.Application")
07 appAccess.OpenCurrentDatabase strDB
08 appAccess.DoCmd.OpenForm "OBS生產(chǎn)程序升級"
'關(guān)掉本數據庫,以便復制自已(覆蓋掉)
09 DoCmd.Quit acQuitSaveNone
10 End If
假如我們有新的版本要發(fā)布(比如6.3版),需要做以下工作:(1)文本框控件“軟件版本號”的數據默認值應改為6.3并編譯成客戶(hù)端程序放到服務(wù)器上,(2)修改“軟件版本”表版本號值為6.3。
程序說(shuō)明:
01行代碼是判斷客戶(hù)端程序的版本號是否需要升級,在這里,客戶(hù)在登錄時(shí),由于6.1不等于6.3,則04、05行代碼先從網(wǎng)絡(luò )服務(wù)器的“\\asp\obs2008\培訓網(wǎng)站\obs最新程序\OBS-鏈接表后最新\”位置調用程序“生產(chǎn)程序更新.mdb”,08行運行該程序內窗體“OBS生產(chǎn)程序升級”,09行程序在調用后關(guān)掉客戶(hù)端應用程序(bag.mde)本身
2、升級
如果確認調用升級程序,則打開(kāi)“生產(chǎn)程序更新.mdb”從而運行“OBS生產(chǎn)程序升級”窗體,單擊窗體上的 “開(kāi)始升級”按鈕即可升級。其按鈕單擊事件的代碼如下:
01 CreateObject("wscript.shell").Run """\\asp\obs2008\培訓網(wǎng)站\obs最新程序\OBS-鏈接表后最新\OBS生產(chǎn).bat""", 0
02 MsgBox "升級成功!"
03 DoCmd.Quit acQuitSaveNone
程序說(shuō)明:
01行代碼從“\\asp\obs2008\培訓網(wǎng)站\obs最新程序\OBS-鏈接表后最新\“位置調用外部文件“OBS生產(chǎn).bat”
注:外部文件“OBS生產(chǎn).bat”的內容如下:
rd /s/q d:\obs-sc
md d:\obs-sc
copy \\asp\obs2008\培訓網(wǎng)站\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生產(chǎn).bat代碼說(shuō)明:
1、2行命令是刪除d:\obs-sc目錄及其下所有文件,然后再建立,第3行命令是把客戶(hù)端程序拷貝到d:\obs-sc目錄下,4、5命令是刪除桌面上的bag.mde快捷鍵圖標,再把d:\obs-sc目錄下的客戶(hù)端應用程序bag.mde重新發(fā)送到桌面上。
聯(lián)系客服