请教大虾:我用vb做了一个图书管理系统,有删除功能,需要在上面加备份和恢复功能,请大虾指教,
最好有源代码!!!!

解决方案 »

  1.   

    Access数据库的修复、压缩、备份:在工程中引用 Microsoft Jet and Replication Objects 2.1 librarySub BackupMdb(strBack As String)
        Dim miJRO As jro.JetEngine
        Set miJRO = New jro.JetEngine
        miJRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "\DBName.mdb;" _
            & "Jet OLEDB:Database Password=abc", _
        "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & strBack & ";" _
            & "Jet OLEDB:Database Password=abc"
    End Sub
    其中strBack是修复后数据库文件存放路径和名称字符串。
      

  2.   

    用复制方法还原数据   
        Dim StrBack As String
        Dim StrRevert As String
        Dim X As String
        CommonDialog1.Filter = "数据库文件(*.db)|*.db"
        CommonDialog1.FilterIndex = 2
        CommonDialog1.DialogTitle = "选择还原文件名称"
        CommonDialog1.ShowOpen
        StrBack = CommonDialog1.Filename
        X = MsgBox("数据还原将用备份的数据库覆盖现有数据库," _
            & "请做好现有数据库的备份。确认本次还原数据的操作吗?", _
            vbOKCancel + vbExclamation, "提示")
        If X = vbCancel Then Exit Sub
        StrRevert = "" & App.Path & "\Stipend.mdb"
        FileCopy StrBack, StrRevert
        MsgBox "数据还原成功!", vbOKOnly + vbExclamation, "提示"
      

  3.   

    谢谢vbman2003的指教 可是我还是有点不懂,界面上我应该有“备份”和“恢复”两个按钮,可以再详细一点吗,能把那些我自己需要个改动的地方给标出来吗? 我是新手,望多多指教不胜感激,谢谢!!
      

  4.   

    备份按钮
    Private Sub Command1_Click()
    Dim miJRO As jro.JetEngine
        Set miJRO = New jro.JetEngine
        miJRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "\DBName.mdb;" _
            & "Jet OLEDB:Database Password=abc", _
        "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & strBack & ";" _
            & "Jet OLEDB:Database Password=abc"End Sub
    ********************************************
    还原按钮
    Private Sub Command2_Click()
    Dim StrBack As String
        Dim StrRevert As String
        Dim X As String
        CommonDialog1.Filter = "数据库文件(*.db)|*.db"
        CommonDialog1.FilterIndex = 2
        CommonDialog1.DialogTitle = "选择还原文件名称"
        CommonDialog1.ShowOpen
        StrBack = CommonDialog1.Filename
        X = MsgBox("数据还原将用备份的数据库覆盖现有数据库," _
            & "请做好现有数据库的备份。确认本次还原数据的操作吗?", _
            vbOKCancel + vbExclamation, "提示")
        If X = vbCancel Then Exit Sub
        StrRevert = "" & App.Path & "\Stipend.mdb"
        FileCopy StrBack, StrRevert
        MsgBox "数据还原成功!", vbOKOnly + vbExclamation, "提示"
    End Sub
      

  5.   

    出错提示"用户定义类型未定义"miJRO As jro.JetEngine请给出jro.JetEngine的定义类型
    希望自由风快给回复 ,我急用!!谢谢!!
      

  6.   

    以下是我 “备份"按钮  和 "恢复"按钮 功能,但是不可以执行,我在下面标注了一些问题,请大虾们指教,不胜感激,(在线等!!!!)小弟急用!!!!备份子程序
    ********************************
    Sub BackupMdb(StrBack As String)    '备份子程序,请问备份文件目的路径和名称是什么意思??
        'StrBack是备份文件目的路径和名称
        Dim miJRO As JRO.JetEngine
        Set miJRO = New JRO.JetEngine
        miJRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "C:\Documents and Settings\Administrator\My Documents\vb\资源管理.mdb;" _       '这是我的源文件路径和名称,请看是否有错不????
            & "Jet OLEDB:Database Password=abc", _
        "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & StrBack & ";" _
            & "Jet OLEDB:Database Password=abc"
    End Sub
    下面是备份按钮的功能:
    ******************************
    Private Sub command6_Click()
         
         Dim Str As String
        commondialog1.Filter = "数据库文件(*.mdb)|*.mdb"   '在此行出错提示:对象变量或with块变量未设置,实时错误91,请问怎么改????
        commondialog1.FilterIndex = 2
        commondialog1.DialogTitle = "选择备份文件名称"
        commondialog1.ShowOpen
        Str = commondialog1.FileName
        '检查目标文件名称是否存在,存在则要先删除
        If Dir(Str) <> "" Then
            Kill Str
        End If
        Call BackupMdb(Str)
        MsgBox "数据备份完成!为了你的数据安全,请经常备份数据库。", _
                    vbOKOnly + vbExclamation, "提示"End Sub下面是恢复按钮的功能:我是不是要在通用过程中这样定义:Dim commondialog1 as Commondialog  ??
    **********************
    Private Sub Command7_Click()
        
        Dim StrBack As String
        Dim StrRevert As String
        Dim X As String
        commondialog1.Filter = "数据库文件(*.db)|*.db"
        commondialog1.FilterIndex = 2
        commondialog1.DialogTitle = "选择还原文件名称"
        commondialog1.ShowOpen
        StrBack = commondialog1.FileName
        X = MsgBox("数据还原将用备份的数据库覆盖现有数据库," _
            & "请做好现有数据库的备份。确认本次还原数据的操作吗?", _
            vbOKCancel + vbExclamation, "提示")
        If X = vbCancel Then Exit Sub
        StrRevert = "" & App.Path & "\Stipend.mdb"
        FileCopy StrBack, StrRevert
        MsgBox "数据还原成功!", vbOKOnly + vbExclamation, "提示"End Sub
      

  7.   

    以下是我 “备份"按钮  和 "恢复"按钮 功能,但是不可以执行,我在下面标注了一些问题,请大虾们指教,不胜感激,(在线等!!!!)小弟急用!!!!备份子程序
    ********************************
    Sub BackupMdb(StrBack As String)    '备份子程序,请问备份文件目的路径和名称是什么意思??
        'StrBack是备份文件目的路径和名称: 所生成的备份文件保存的位置和文件名
        Dim miJRO As JRO.JetEngine
        Set miJRO = New JRO.JetEngine
        miJRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "\资源管理.mdb;" _       '这是我的源文件路径和名称,请看是否有错不????:最好用相对路径。否则程序安装到目标机会找不到文件。
            & "Jet OLEDB:Database Password=abc", _
        "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & StrBack & ";" _
            & "Jet OLEDB:Database Password=abc"
    End Sub
    下面是备份按钮的功能:
    ******************************
    Private Sub command6_Click()
         
         Dim Str As String
        commondialog1.Filter = "数据库文件(*.mdb)|*.mdb"   '在此行出错提示:对象变量或with块变量未设置,实时错误91,请问怎么改????:工程—部件菜单,添加 commondialog 控件,并拖一个到窗体上。
        commondialog1.FilterIndex = 2
        commondialog1.DialogTitle = "选择备份文件名称"
        commondialog1.ShowOpen
        Str = commondialog1.FileName
        '检查目标文件名称是否存在,存在则要先删除
        If Dir(Str) <> "" Then
            Kill Str
        End If
        Call BackupMdb(Str)
        MsgBox "数据备份完成!为了你的数据安全,请经常备份数据库。", _
                    vbOKOnly + vbExclamation, "提示"End Sub下面是恢复按钮的功能:我是不是要在通用过程中这样定义:Dim commondialog1 as Commondialog  ??:不需要按上面的添加控件就ok.
    **********************
    Private Sub Command7_Click()
        
        Dim StrBack As String
        Dim StrRevert As String
        Dim X As String
        commondialog1.Filter = "数据库文件(*.db)|*.db"
        commondialog1.FilterIndex = 2
        commondialog1.DialogTitle = "选择还原文件名称"
        commondialog1.ShowOpen
        StrBack = commondialog1.FileName
        X = MsgBox("数据还原将用备份的数据库覆盖现有数据库," _
            & "请做好现有数据库的备份。确认本次还原数据的操作吗?", _
            vbOKCancel + vbExclamation, "提示")
        If X = vbCancel Then Exit Sub
        StrRevert = "" & App.Path & "\Stipend.mdb"
        FileCopy StrBack, StrRevert
        MsgBox "数据还原成功!", vbOKOnly + vbExclamation, "提示"End Sub
      

  8.   


    Option ExplicitSub BackupMdb(StrBack As String)
        Dim miJRO As JRO.JetEngine
        Set miJRO = New JRO.JetEngine
        miJRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & App.Path & "\Stipend.mdb;" _
            & "Jet OLEDB:Database Password=123", _
        "Provider=Microsoft.Jet.OLEDB.4.0; " _
            & "Data Source=" & StrBack & ";" _
            & "Jet OLEDB:Database Password=123"
    End Sub '备份按键
    Private Sub cmdBackup_Click()
        Dim Str As String
        CommonDialog1.Filter = "数据库文件(*.mdb)|*.mdb"
        CommonDialog1.FilterIndex = 2
        CommonDialog1.DialogTitle = "选择备份文件名称"
        CommonDialog1.ShowOpen
        Str = CommonDialog1.Filename
        '检查目标文件名称是否存在,存在则要先删除
        If Dir(Str) <> "" Then
            Kill Str
        End If
        Call BackupMdb(Str)  '引用备份过程
        MsgBox "数据备份完成!为了你的数据安全,请经常备份数据库。", _
                    vbOKOnly + vbExclamation, "提示"
    End Sub'恢复按键
    Private Sub cmdRevert_Click()
        Dim StrBack As String
        Dim StrRevert As String
        Dim X As String
        CommonDialog1.Filter = "数据库文件(*.mdb)|*.mdb"
        CommonDialog1.FilterIndex = 2
        CommonDialog1.DialogTitle = "选择还原文件名称"
        CommonDialog1.ShowOpen
        StrBack = CommonDialog1.Filename
        X = MsgBox("数据还原将用备份的数据库覆盖现有数据库," _
            & "请做好现有数据库的备份。确认本次还原数据的操作吗?", _
            vbOKCancel + vbExclamation, "提示")
        If X = vbCancel Then Exit Sub
        StrRevert = "" & App.Path & "\Stipend.mdb"
        FileCopy StrBack, StrRevert
        MsgBox "数据还原成功!", vbOKOnly + vbExclamation, "提示"
    End Sub
      

  9.   

    出错提示:变量未定义,出错块停在Commondialog1上,烦请vbman2003指教?
    在线等,我今天必须把他作完,谢谢了!!
      

  10.   

    哦,我已经定义了Commondialog1,可是运行时出错了
    提示: 实时错误“91”
           对象变量或with块变量未定义
    谢谢!!! 请问这是怎么回事?
      

  11.   

    Dim miJRO As JRO.JetEngine
        Set miJRO = New JRO.JetEngine
    请问该引用什么???
      

  12.   

    Private Sub bak_Click()
    On Error GoTo errmsg
    Dim fso As New FileSystemObject
    Dim strdbname As String
    CommonDialog1.Filter = "Access Database (*.mdb)|*.mdb"
    CommonDialog1.ShowSave
    If Len(main_MDIform.CommonDialog1.FileName) > 0 Then
       strdbname = main_MDIform.CommonDialog1.FileName
      If InStr(strdbname, ".") = 0 Then
        strdbname = strdbname & ".mdb"
      End If
      If Dir(strdbname) <> vbNullString Then
       If MsgBox(strdbname & "已经存在,要替换该文件吗?", vbQuestion + vbYesNo, "提示") = vbYes Then
         Kill strdbname
       Else
         Exit Sub
       End If
      End If
    Else
      Exit Sub
    End If
    If Len(strdbname) = 0 Then Exit Sub
    fso.CopyFile App.Path & "\db.mdb", strdbname
    MsgBox "数据库已经成功备份", 48, "提示"
    Exit Sub
    errmsg:
    If Err.Number = 424 Then Exit Sub
    MsgBox Err.Description, , " 提示"
    End Sub
    Private Sub rest_Click()
    On Error GoTo errmsgDim fso As New FileSystemObject
    Dim strdbname As String
    CommonDialog1.Filter = "Access Database (*.mdb)|*.mdb"
    CommonDialog1.ShowOpen
    If Len(main_MDIform.CommonDialog1.FileName) > 0 Then
       strdbname = main_MDIform.CommonDialog1.FileName
       End IfIf Len(strdbname) = 0 Then Exit Sub   If Not MsgBox("真的要恢复备份吗?最好在恢复前保存现有数据", vbQuestion + vbYesNo, "提示") = vbYes Then
        Exit Sub
      End If
    DataEnvironment1.Connection1.Close
    fso.CopyFile strdbname, App.Path & "\db.mdb"
    MsgBox "数据已经成功恢复,系统自动退出后,请重新启动系统", 48, "提示"
    End
    Exit Sub
    errmsg:
    If Err.Number = 424 Then Exit Sub
     MsgBox Err.Description, , " 提示"
    End Sub
      

  13.   

    运行VB,在“工程-引用”菜单下引用 Microsoft Jet and Replication Objects 2.1 library