Option Explicit
Private WithEvents objBackup As SQLDMO.Backup
Private WithEvents objRestore As SQLDMO.RestorePrivate Sub cmdBak_Click()
Dim objSQLServer As New SQLDMO.SQLServer
Dim objBackup As SQLDMO.Backup
Dim strServer As String
Dim strUserID As String
Dim strPassword As String
Dim strDatabase As String
Dim strFile As String
strServer = "(local)"
strUserID = "sa"
strPassword = "sa"
strDatabase = DATABASE
strFile = txtBakFile.Text If Dir(strFile) <> "" Then
If MsgBox("文件" & strFile & "已存在,是否删除?", vbQuestion + vbYesNo) = vbYes Then
Kill strFile Else
Exit Sub
End If
End If
ProgressBar1.Value = 0
ProgressBar1.Max = 100
lblProgress.Caption = "备份进度: 0%"
Screen.MousePointer = 11On Error GoTo ErrorHandler objSQLServer.Connect strServer, strUserID, strPassword
Set objBackup = New SQLDMO.Backup With objBackup
.PercentCompleteNotification = 1
.DATABASE = strDatabase
.Files = strFile
DoEvents
Err = 0
.SQLBackup objSQLServer
Screen.MousePointer = 11
ProgressBar1.Value = 100
DoEvents
End With
Set objBackup = Nothing
objSQLServer.Close
Set objSQLServer = Nothing
Screen.MousePointer = 0
Exit SubErrorHandler: Screen.MousePointer = 0
MsgBox Err.Description, vbCritical
End Sub'显示进度
Private Sub objBackup_Complete(ByVal Message As String) lblProgress.Caption = "备份成功!" Set objBackup = NothingEnd Sub
Private Sub objBackup_PercentComplete(ByVal Message As String, ByVal Percent As Long)
lblProgress.Caption = "备份进度: " & Percent & "%"
ProgressBar1.Value = ProgressBar1.Max * (Percent / 100)End Sub
运行以上代码后,出现如下错误:[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Settings\wang\桌面\dfa.bak'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。
其中运行时,strFile="C:\Documents and Settings\wang\桌面\dfa.bak"
为什么会有以上报错???变成了》》》
无法打开备份设备 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Settings\wang\桌面\dfa.bak' 奇怪奇怪!!!如果我给strFile="dfa.bak",就能备份成功!并备份到'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\"下为什么啊?我就郁闷了,谁帮帮忙?
Private WithEvents objBackup As SQLDMO.Backup
Private WithEvents objRestore As SQLDMO.RestorePrivate Sub cmdBak_Click()
Dim objSQLServer As New SQLDMO.SQLServer
Dim objBackup As SQLDMO.Backup
Dim strServer As String
Dim strUserID As String
Dim strPassword As String
Dim strDatabase As String
Dim strFile As String
strServer = "(local)"
strUserID = "sa"
strPassword = "sa"
strDatabase = DATABASE
strFile = txtBakFile.Text If Dir(strFile) <> "" Then
If MsgBox("文件" & strFile & "已存在,是否删除?", vbQuestion + vbYesNo) = vbYes Then
Kill strFile Else
Exit Sub
End If
End If
ProgressBar1.Value = 0
ProgressBar1.Max = 100
lblProgress.Caption = "备份进度: 0%"
Screen.MousePointer = 11On Error GoTo ErrorHandler objSQLServer.Connect strServer, strUserID, strPassword
Set objBackup = New SQLDMO.Backup With objBackup
.PercentCompleteNotification = 1
.DATABASE = strDatabase
.Files = strFile
DoEvents
Err = 0
.SQLBackup objSQLServer
Screen.MousePointer = 11
ProgressBar1.Value = 100
DoEvents
End With
Set objBackup = Nothing
objSQLServer.Close
Set objSQLServer = Nothing
Screen.MousePointer = 0
Exit SubErrorHandler: Screen.MousePointer = 0
MsgBox Err.Description, vbCritical
End Sub'显示进度
Private Sub objBackup_Complete(ByVal Message As String) lblProgress.Caption = "备份成功!" Set objBackup = NothingEnd Sub
Private Sub objBackup_PercentComplete(ByVal Message As String, ByVal Percent As Long)
lblProgress.Caption = "备份进度: " & Percent & "%"
ProgressBar1.Value = ProgressBar1.Max * (Percent / 100)End Sub
运行以上代码后,出现如下错误:[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Settings\wang\桌面\dfa.bak'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE 操作异常终止。
其中运行时,strFile="C:\Documents and Settings\wang\桌面\dfa.bak"
为什么会有以上报错???变成了》》》
无法打开备份设备 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Settings\wang\桌面\dfa.bak' 奇怪奇怪!!!如果我给strFile="dfa.bak",就能备份成功!并备份到'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\"下为什么啊?我就郁闷了,谁帮帮忙?
我要的是能动态选择备份目录,随便备份到哪。
你说的是什么意思?
********************************
用CommonDialog控件来选择备份路径