Dim cn As New ADODB.Connection
Dim s_path, s_dataexport As String
s_path = App.path
Me.MousePointer = 11
s_dataexport = "backup database database_name to disk='" + s_path + "\backup\" + Format(Now(), "YY-MM-DD") + userinfo.Depname + "backup.dat'"
cn.Open gs_conn_string
cn.BeginTrans
cn.Execute s_dataexport
Err.Number = 0
If Err.Number = 0 Then
    cn.CommitTrans
    MsgBox "数据备份成功!", vbInformation, "提示"
Else
    cn.RollbackTrans
    MsgBox "数据备份失败!", vbCritical, "提示"
End If
cn.Close
Set cn = Nothing
Me.MousePointer = 1

解决方案 »

  1.   

    是不是用那些xp_cmdshell bcp呀,能不能举个例子呀,按你的方法,行吗
      

  2.   

    Dim pConn As ADODB.Connection
    Dim oSQLServer As SQLDMO.SQLServerPublic Function FunDBBackup(nServer As String, nLogin As String, nPWD As String, nDatabase As String, nPath As String, BupDBName As String) As Boolean
    On Error GoTo ErrBackUp
    Set oSQLServer = New SQLDMO.SQLServer
        oSQLServer.Connect nServer, nLogin, nPWD 'OPSERVER为服务器名称,SA为LOGIN名称,“”为密码,这里是空密码
        
        '创建备份对象,并设定必要的属性
        Dim oBackup As New SQLDMO.Backup
        oBackup.Action = SQLDMOBackup_Database '声明备份整个数据库,其它选项可以参考SQLSERVER数据库帮助
        oBackup.Database = nDatabase  '选择需要备份的数据库.
    '    oBackup.Devices = "Gym"
        If Dir(nPath + "\" + BupDBName, vbDirectory) <> "" Then
           If MsgBox("备份已经存在!覆盖以前的备份吗?", vbOKCancel + vbQuestion, "备份提示") = vbOK Then
                SysFile.DeleteFile nPath + "\" + BupDBName
           Else
               Exit Function
           End If
        End If
        oBackup.Files = nPath + "\" + BupDBName '这里选择为文件备份模式,文件为nPath + "\" + nDatabase
    '    oBackup.MediaName
        '以下的内容是可选的,分别设定了备份媒介的名称,备份名称何备份说明
    '    oBackup.MediaName = "Gym.bak " & Date & " " & Time
        oBackup.BackupSetName = BupDBName
    '    oBackup.BackupSetDescription = "Gym"
        oSQLServer.EnableBcp = True
       
        ' 开始备份
        oBackup.SQLBackup oSQLServer
        FunDBBackup = True
    '    Fun_Db_BackUp = True
        '关闭服务器连接
        oSQLServer.Close
    Exit Function
    ErrBackUp:
        oSQLServer.Close
        FunDBBackup = False
    End Function