做了一个程序,access为数据库,有一个程序备份功能。
    有备份就有还原,问题在于程序打开后mdb文件既被锁定,无法删除。谁能给出具体方案呢?
   

解决方案 »

  1.   

    Private Sub cmdRestore_Click()
        Dim sSqlstr As String
        Dim sBackupDb As String
        Dim sBackupDbA As String, sCurDb As String
        
        
        If MsgBox("是否已将其他窗口保存并关闭?", vbQuestion + vbYesNo + vbDefaultButton2, "询问信息") = vbNo Then
            Exit Sub
        End If
        
        If MsgBox("是否真的要恢复数据库?", vbQuestion + vbYesNo + vbDefaultButton2, "询问信息") = vbNo Then
            Exit Sub
        End If    sCurDb = txtOldDb.Text '备份的数据库名字放这里
        On Error GoTo errFlag
            adoLogon.Close
            If RestoreDB() = False Then
                MsgBox "数据恢复失败,请检查要恢复的数据库是否正确!", vbInformation, App.Title
                adoLogon.Open
                Exit Sub
            End If
            adoLogon.Open
        On Error GoTo 0
            
            
        MsgBox "数据库恢复成功!系统将自动退出,请重新登录!", vbInformation, "提示信息"
        End
    errFlag:
        If err.Number = -2147467259 Then
            MsgBox "数据库格式错误!", vbInformation, "提示信息"
            Exit Sub
        End If
        End
    End SubPrivate Function RestoreDB() As Boolean
    Dim conTestRestore As New ADODB.Connection, strSource
        strSource = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Me.txtOldDb.Text & ";Jet OLEDB:Database Password=11111"
        On Error GoTo errFlag
            conTestRestore.Open strSource
            Set conTestRestore = Nothing
            FileCopy txtOldDb.Text, txtCurrentDb.Text  '恢复数据库
        On Error GoTo 0
        RestoreDB = True
        Exit Function
    errFlag:
        RestoreDB = False
        err.Clear
    End Function
      

  2.   

    问题在于已经做了读写操作了啊!好象不行哦!特别是那个ldb文件一出来,mdb文件就锁定了
      

  3.   

    登录的时候建立连接就产生ldb,关闭所有连接ldb就应该消失,我这个是现成软件的代码,实现过了的,只要没有写操作,一定可以的。