加入CommonDialog控件 引用DAO3.51 引用ADO 2.1Library 数据库中有几个表就打开几个表来备份。(应该可以的,我试过) 如果有什么新的发现就发信给我 [email protected] Sub dbbak_Click() '数据库备份 On Error GoTo ex Dim strdbname As String Dim db As Database Dim strdb As String Dim workdb As Database Dim qdf As QueryDef '------------ CommonDialog.Filter = "Access Database (*.MDB)|*.mdb" CommonDialog.ShowSave If Len(Form1.CommonDialog.FileName) > 0 Then strdbname = Form1.CommonDialog.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 = NothingIf 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" '------------ Set qdf = Nothing workdb.Close Set workdb = Nothing MsgBox "数据库已经成功备份!", 48, "提示" Exit Sub ex: Exit Sub End Sub
引用DAO3.51
引用ADO 2.1Library
数据库中有几个表就打开几个表来备份。(应该可以的,我试过)
如果有什么新的发现就发信给我 [email protected] Sub dbbak_Click() '数据库备份
On Error GoTo ex
Dim strdbname As String
Dim db As Database
Dim strdb As String
Dim workdb As Database
Dim qdf As QueryDef
'------------
CommonDialog.Filter = "Access Database (*.MDB)|*.mdb"
CommonDialog.ShowSave
If Len(Form1.CommonDialog.FileName) > 0 Then
strdbname = Form1.CommonDialog.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 = NothingIf 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"
'------------
Set qdf = Nothing
workdb.Close
Set workdb = Nothing
MsgBox "数据库已经成功备份!", 48, "提示"
Exit Sub
ex:
Exit Sub
End Sub