Option ExplicitPrivate WithEvents objBackup As SQLDMO.BackupPrivate WithEvents objRestore As SQLDMO.RestorePrivate Sub cmdBak_Click()Dim objSQLServer As New SQLDMO.SQLServerDim objBackup As SQLDMO.BackupDim strServer As StringDim strUserID As StringDim strPassword As StringDim strDatabase As StringDim strFile As StringstrServer = "(local)"strUserID = "sa"strPassword = "sa"strDatabase = DATABASEstrFile = 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, vbCriticalEnd Sub'显示进度Private Sub objBackup_Complete(ByVal Message As String) lblProgress.Caption = "备份成功!" Set objBackup = NothingEnd SubPrivate 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\"下为什么啊?我就郁闷了,谁帮帮忙?
长文件名两边要加上“"”,应该就可以了
注意:“"”在String变量中用“""”表示你换到一个简单的路径下试试!