我想问的是我用vb编写的程序,如何将access编写的数据库导出,当系统出现问题的时候,我怎样又能将导出的数据库,重新导入呢!!谢谢!!

解决方案 »

  1.   

    backup 呀!也可以用sql语句实现!
    On Error Resume Next
       Dim strdbname As String
       Dim db As Database
       Dim strdb As String
       Dim workdb As Database
       Dim qdf As QueryDef   CommonDialog1.Filter = "Access Database (*.MDB)|*.mdb"
       CommonDialog1.ShowSave
       If Len(frmjiemian.CommonDialog1.FileName) > 0 Then
          strdbname = frmjiemian.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
       Set db = CreateDatabase(strdbname, dbLangGeneral, dbEncrypt)
       db.Close
       Set db = Nothing   If Right$(Trim$(App.Path), 1) = "\" Then
          Set workdb = OpenDatabase(App.Path & "db1.mdb")
       Else
          Set workdb = OpenDatabase(App.Path & "\db1.mdb")
       End If
       
       strdb = "select 按揭.* into 按揭 in '" & strdbname & " 'from 按揭"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"
       
       strdb = "select 保险.* into 保险 in '" & strdbname & " 'from 保险"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"
       
       strdb = "select 国债.* into 国债 in '" & strdbname & " 'from 国债"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"
       
       strdb = "select 日常收支.* into 日常收支 in '" & strdbname & " 'from 日常收支"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"
       
       strdb = "select 定期.* into 定期 in '" & strdbname & " 'from 定期"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"
       
       strdb = "select 债权债务.* into 债权债务 in '" & strdbname & " 'from 债权债务"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"
       
       strdb = "select 证券交易明细.* into 证券交易明细 in '" & strdbname & " 'from 证券交易明细"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"
       
       strdb = "select 证券行情.* into 证券行情 in '" & strdbname & " 'from 证券行情"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"
       
       strdb = "select 买入证券.* into 买入证券 in '" & strdbname & " ' from 买入证券"
       Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       If Err.Number = 424 Then
          workdb.QueryDefs.Delete "user_qdf"
          Set qdf = workdb.CreateQueryDef("user_qdf", strdb)
       End If
       qdf.Execute
       workdb.QueryDefs.Delete "user_qdf"   Set qdf = Nothing
       workdb.Close
       Set workdb = Nothing   MsgBox "数据库已经成功备份!", 48, "提示"
    End Sub
      

  2.   

    直接把access库文件copy一份,导入时就把旧的库文件删了,把这个copy的再拷回去就行了。
    因为access就是一个mdb文件
      

  3.   


    '拷贝数据库备份
    FileCopy "c:\a.mdb", "d:\bak.mdb"
    '恢复的时候将所有连接断开,然后拷贝回来
    FileCopy "d:\bak.mdb", "c:\a.mdb"
      

  4.   

    用CopyFile 也一样
    CopyFile"源路径","目的路径"
      

  5.   

    第一楼的回答真叫人晕!
      access的所谓的备份本来就很简单!