我想实现备份、即时更新数据库功能,最好用ADO实现,以前用一段DAO代码老是不对,请教各位,最好有原代码,或相关网页。谢谢!

解决方案 »

  1.   


    Public Sub CompactJetDatabase(Location As String, Optional BackupOriginal As Boolean = True)
        On Error GoTo CompactErr
        Dim strBackupFile As String
        Dim strTempFile As String
        
        Conn.Close
        '检查数据库文件是否存在
        If Len(Dir(Location)) Then    ' 如果需要备份就执行备份
         If BackupOriginal = True Then
         strBackupFile = App.Path & "\backup.mdb"
         If Len(Dir(strBackupFile)) Then Kill strBackupFile
         FileCopy Location, strBackupFile
         End If     ' 创建临时文件名
         strTempFile = App.Path & "\temp.mdb"
         If Len(Dir(strTempFile)) Then Kill strTempFile
         '通过DBEngine 压缩数据库文件
         DBEngine.CompactDatabase Location, strTempFile
         
         
         ' 删除原来的数据库文件
         Kill Location
         ' 拷贝刚刚压缩过临时数据库文件至原来位置
         FileCopy strTempFile, Location
         ' 删除临时文件
         Kill strTempFile
        Else
        End If
        Conn.Open StrConn
    CompactErr:
                Exit Sub
        End Sub
      

  2.   

    Copy一下不就行了,还要什么备份啊?
      

  3.   

    to: henrryzhang(North Wolf)
    请问如果数据库是带密码的怎么办,会报错“Not a Valid Password”请帮忙,谢谢
      

  4.   

    知道了,只有先
        tmpDataBase.NewPassword "Password", ""
      

  5.   

    DAO:
    DBEngine.CompactDataBase "原库名", "新库名", , , ";pwd=密码"ADO:
    JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strSource & ";Jet OLEDB:Database Password=" & strPassword, _
            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDestDB & ";Jet OLEDB:Database Password=" & strPassword
      

  6.   

    of123所说的是压缩数据库,可以用来备份。其实Access本身是没有服务器的,直接copy文件是最简单的。