Office中国论坛/Access中国论坛
标题:
关于局域网数据库的更新问题
[打印本页]
作者:
XIEMR
时间:
2011-6-15 20:08
标题:
关于局域网数据库的更新问题
我在公司做了一个数据库,用的是链接表,将MDE文件分发给每个用户,后台MDB文件放在一个共享文件夹中,请教如何实现数据库的同步,即当我每次要更改数据库程序时必须要求每台电脑复制新的MDE文件才能用,有没有办法让这个同步?因为如果将MDE文件也放在共享文件中,如果所有电脑都去开启同一个数据库的话会很慢很慢,求助如何实现
作者:
fine88888888
时间:
2011-6-15 20:15
我用了一个批处理:copy V:\PMC\IE生产管理系统\IE管理系统.mdE/D:\IE生产管理系统(Y),放到客户端启动,每次客户端开机后自动运行,可达到自动更新目的。
作者:
XIEMR
时间:
2011-6-15 20:23
回复
fine88888888
的帖子
这个方法我也用过,但是如果客户端不重启电脑就不行了,总不会每次要求用户去点击BAT文件吧,有没有别的办法,比如说用VB做个外壳之类的,或者用MDE自动开启时检测是否为最新版本,如何不是最新版本则复制新版本的MDE文件,而不是每次都去复制MDE文件
作者:
fine88888888
时间:
2011-6-15 20:27
哦,,我每次更改后都会把版本号更改一次,如V7,用户登陆时就会与后台数据库的版本号对比,不等於就提示:版本太低,请升级!
作者:
roych
时间:
2011-6-15 21:00
这里给一段在线升级的代码:
建立模块1:
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
复制代码
主控界面升级代码:
Dim appAccess As Access.Application
Dim db As Database
Public Sub OpenDB()
Dim strDB As String
strDB = CurrentProject.Path & "\EmpInfSys.mdb"
Set appAccess = CreateObject("Access.Application")
Set db = appAccess.DBEngine.OpenDatabase(strDB, False, False, ";PWD=")
appAccess.OpenCurrentDatabase strDB
If Val(SysCmd(acSysCmdAccessVer)) = 9 Then
appAccess.Visible = True
End If
DoCmd.Quit
End Sub
Private Sub Form_Load()
DoCmd.RunCommand acCmdAppMinimize
Dim strFileName As String
strFileName = "\\szas3k01\CNCoats\SCTTC\Special Folder\EmplnfSys\network\networkTest.mdb"
If Dir(strFileName, vbDirectory) = "" Then
MsgBox "系统检测到网络不通,不能启动系统.可能是本机网络不通或是管理员在维护后台数据,请稍后再试或联系东东跟进!", vbOKOnly, "辅助系统络网检测提示"
DoCmd.Quit
End If
Dim SourceFile As String
Dim SourceFile1 As String
Dim DestinationFile As String
Dim DestinationFile1 As String
Dim localVision As String
Dim serverVision As String
'后台版本和前台版本文件
SourceFile = "\\szas3k01\CNCoats\SCTTC\Special Folder\EmplnfSys\NewVersion\EmpInfSys\Version.mdb"
DestinationFile = CurrentProject.Path + "\Version.mdb"
'后台数据库和前台数据库文件
SourceFile1 = "\\szas3k01\CNCoats\SCTTC\Special Folder\EmplnfSys\NewVersion\EmpInfSys\后台数据库.mdb"
DestinationFile1 = CurrentProject.Path + "\后台数据库.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
FileCopy SourceFile1, DestinationFile1
MsgBox "版本升级结束,欢迎登陆系统, 感谢关注和支持罗伊软件工作室作品!", vbInformation, "提示"
OpenDB
End If
End Sub
Private Sub Form_Open(Cancel As Integer)
DoCmd.RunCommand acCmdAppMinimize
End Sub
复制代码
请把必要的地址改为相应的数据。
作者:
XIEMR
时间:
2011-6-15 21:27
感谢roych版主!
作者:
蝶儿没了翅膀
时间:
2011-6-21 16:28
学习了,感谢分享
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3