设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 7763|回复: 9
打印 上一主题 下一主题

一个关于ACCESS应用程序升级的问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-20 23:51:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用ACCESS2000编写一个应用程序,发布分发后,因为对程序做了版本升级,可以在程序的登录窗口打开时自动检查版本号,发现有新版本时弹出一个窗口,提示升级,用户通过选择“升级”、“暂不升级”按钮选择。

      当用户选择“升级”,程序要从局域网服务器,IP:“fpt://192.168.100.3”下载“采购管理.rar“文件,然后解压。关闭正在运行的应用程序,运行安装包来升级应用程序。

问题:如何编写下载文件的代码?如何用xp内置下载工具下载?

请高手给出一个例程。谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-4-21 06:59:59 | 只看该作者
如何在局域网上实现自动升级?
(A)
1.建一个启动程序log_on.mdb
2.判断本地主程序与服务器端主程序的版本是否一致
  采用GetVersion函数来获得版本号
Public Function GetVersion(FileName As String, strPWS As String) As String
    Dim rst As ADODB.Recordset
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & FileName & ";jet oledb:database password='" & strPWS & "'"
    strSQL = "select * from tblversion"
    Set rst = New ADODB.Recordset
    rst.CursorLocation = adUseClient
    rst.Open strSQL, strConn
    rst.MoveFirst
    GetVersion = rst!Version
    rst.Close
    Set rst = Nothing
End Function  
3.将服务器端的主程序替换本地主程序
    Dim SourceFile As String
    Dim DestinationFile As String
    Dim localVision As String
    Dim serverVision As String
    ' 指定服务器上的文件名。
    ' SourceFile = "\\172.16.172.6\server\main.mdb"
    SourceFile = CurrentProject.Path + "\server\main.mdb"
    ' 指定本地文件名。
    DestinationFile = CurrentProject.Path + "\main.mdb"
    If Dir(SourceFile) = "" Then
        MsgBox SourceFile & vbCrLf & "网路不通或文件不存在!", vbCritical, "提示"
        Exit Sub
    End If
    '获得本地主程序的版本号
    localVision = GetVersion(DestinationFile, "")
    '获得服务器端升级文件的版本号
    serverVision = GetVersion(SourceFile, "")
    If localVision = serverVision Then
        '运行主程序
        OpenDB
    Else
        MsgBox "版本不同,现在开始升级!", vbInformation, "提示"
        FileCopy SourceFile, DestinationFile
        MsgBox "版本升级结束!", vbInformation, "提示"
        '运行主程序
        OpenDB
    End If
3#
发表于 2009-4-21 07:00:21 | 只看该作者
4.替换结束后运行主程序
Public Sub OpenDB()
    Dim strDB As String
    strDB = CurrentProject.Path & "\main.mdb"
    Set appAccess = CreateObject("Access.Application")
    Set db = appAccess.DBEngine.OpenDatabase(strDB, False, False, "WD=")
    appAccess.OpenCurrentDatabase strDB
    If Val(SysCmd(acSysCmdAccessVer)) = 9 Then
        appAccess.Visible = True
    End If
    DoCmd.Quit
End Sub
4#
 楼主| 发表于 2009-4-22 16:36:13 | 只看该作者
谢了,得到很好的启发。
5#
发表于 2009-4-30 11:41:18 | 只看该作者
看看我先前发布的吧,能解决你的问题!
http://www.office-cn.net/forum.p ... 2%C8%AB%C6%F4%B6%AF
6#
 楼主| 发表于 2009-5-3 01:48:39 | 只看该作者
beenet 兄:你的例程已下载,可是我只安装office 2000,打不开例程,一个字:急!你能将例程转换为office2000版本再放上来吗? 谢谢先!
7#
 楼主| 发表于 2009-5-3 15:37:16 | 只看该作者
根据beenet 兄的例程,我转换成OFFICE2000格式,并对表做了小修改,解决了在线升级问题,不敢独享,特将新例程放上来共享,期望遇到类似问题的弟兄们得到启发。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
发表于 2010-5-24 06:53:02 | 只看该作者
又花钱看看
9#
发表于 2011-12-15 15:54:08 | 只看该作者
钱从哪里来?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-20 19:15 , Processed in 0.114223 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表