小弟又要麻烦各位了,关于VB备份、修复ACCESS数据库的问题,谢谢各位大虾了,在线等
我想在VB中用“备份”、“恢复”两个按钮对ACCESS数据库进行备份和修复,虽然看了网上很多例子,但是还不是很明白,比如:在备份时出现“...数据库被ADMIN以排它方式打开...”等,但关闭数据库又不能操作,还有如果已经在某个位置存在备份文件,若在同一位置放置备份文件该如何覆盖原来的备份文件,(能不能在备份还原的时候用户自己选择还原文件和备份文件的位置)如何把这些如何解决,有没有在数据库打开时可以备份的。
还有一个问题:我在查询时用DATAGRID显示了一些数据(温度和其相关的值,但没有具体的函数关系式),我想用一个坐标图,当我按下“图形显示”按钮时动态的在坐标图上显示这些坐标点(温度和其相关的值),并用直线把这些点依次连起来,请各位给我这两个问题一个具体详细的源码。
我初学实在是不会弄,不知道把问题说清楚了没有,望各位鼎力帮助,小弟先谢谢了!!在线等
[解决办法]
备份有两种办法,一是全部复制数据库文件,二是只备份里面的数据。看来你是采取复制数据库文件的办法了。这个要在备份前断开所有连接,备份后再恢复连接。在备份期间禁止用户操作数据库。
数据库压缩与修复需要用DAO实现,ADO不能做那个事,具体可以在网上找到相关的例子。
你的第二个问题可以用mschart控件解决
[解决办法]
引用 microsoft tet and replication object 2.6,代码:
Dim miJRO As jro.JetEngine
Set miJRO = New jro.JetEngine
miJRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source= " & App.Path & "\youdb.mdb; " _
& "Jet OLEDB:Database Password=5966090 ", _
"Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source= "& App.path & "\newdb.mdb; " _
& "Jet OLEDB:Database Password=abc "
这样修复压缩备份一举三得,还原就用简装的复制方法就可以了
[解决办法]
我自己写的,就照这个吧
'功能:备份数据库
'参数:fullFileName 完整的文件名
'返回:成功1,失败0
Public Function BackupDB(fullFileName As String) As Integer
On Error GoTo err
If fullFileName <> " " Then
FileCopy sG_DBPath, fullFileName
BackupDB = 1
Else
BackupDB = 0
End If
Exit Function
err:
BackupDB = 0
End Function
'功能:恢复数据库
'参数:sFullBakFileName 备份文件的完整路径及文件名
'返回:成功1,失败0
Public Function RestoreDB(sFullBakFileName As String) As Integer
On Error GoTo err
Kill sG_DBPath
FileCopy sFullBakFileName, sG_DBPath '此时文件不应该被打开
RestoreDB = 1
Exit Function
err:
RestoreDB = 0
End Function
'功能:压缩数据库文件
'参数:无
'返回:成功1,失败0
Public Function CompactDB() As Integer
'压缩后数据库会更改记录位置,重新排序
'引用Microsoft Jet and Replication Object(msjro.dll)
Dim jro As New jro.JetEngine
Screen.MousePointer = 11
On Error GoTo err
jro.CompactDatabase sPro & sG_DBPath & sDBPWD, sPro & _
sG_AppPath & "tmp.mdb; " & _
"jet oledb:encrypt database=true; " & sDBPWD
FileCopy sG_AppPath & "tmp.mdb ", sG_DBPath
Kill sG_AppPath & "tmp.mdb "
Set jro = Nothing
Screen.MousePointer = 0
CompactDB = 1
Exit Function
err:
Screen.MousePointer = 0
Set jro = Nothing
CompactDB = 0
End Function
第二个用CHART控件
[解决办法]
数据库备份就直接用FSO对象COPY一份到指定地方,这样简单
[解决办法]
你找找看ldb文件,如果你在备份时可以看到ldb文件,就说明你的mdb文件处于打开状态!