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是修复后数据库文件存放路径和名称字符串。
用复制方法还原数据 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, "提示"
备份按钮 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
出错提示"用户定义类型未定义"miJRO As jro.JetEngine请给出jro.JetEngine的定义类型 希望自由风快给回复 ,我急用!!谢谢!!
以下是我 “备份"按钮 和 "恢复"按钮 功能,但是不可以执行,我在下面标注了一些问题,请大虾们指教,不胜感激,(在线等!!!!)小弟急用!!!!备份子程序 ******************************** 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
以下是我 “备份"按钮 和 "恢复"按钮 功能,但是不可以执行,我在下面标注了一些问题,请大虾们指教,不胜感激,(在线等!!!!)小弟急用!!!!备份子程序 ******************************** 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
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
Dim miJRO As JRO.JetEngine Set miJRO = New JRO.JetEngine 请问该引用什么???
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
运行VB,在“工程-引用”菜单下引用 Microsoft Jet and Replication Objects 2.1 library
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是修复后数据库文件存放路径和名称字符串。
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, "提示"
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
希望自由风快给回复 ,我急用!!谢谢!!
********************************
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
********************************
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
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
在线等,我今天必须把他作完,谢谢了!!
提示: 实时错误“91”
对象变量或with块变量未定义
谢谢!!! 请问这是怎么回事?
Set miJRO = New JRO.JetEngine
请问该引用什么???
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