下面是将另一机器server中的sql数据库备份到本地的源代码,可为什么会出现备份设备出现错误的提示,且备份无法完成?如何达到目的?
这段代码用于备份本地的数据库是好使的!Dim cn As New ADODB.Connection
Dim s_path, s_dataexport As String
s_path = "\\" + 本地机器名 + "\C$\test"
s_dataexport = "backup database " + DatabaseName + " to disk='" + s_path + "'"
cn.open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" + DatabaseUser + ";Password=" + DatabasePWD + ";Initial Catalog=" + DatabaseName + ";Data Source=" + server
cn.Execute s_dataexport

解决方案 »

  1.   

    看一下你的sql sever 手动备份时目录设置(路径对不对)
      

  2.   

    是不是你还又没登录过,所以没有权限,试试在两台机子上都添加一个相同用户名和密码的administator用户试试。
      

  3.   

    举个例子帮你理解一下:
    server数据库备份到本地,就象是把server文件复制到本地。所以如果server没有权限访问本地机器,或者目标目录没有共享,或者s_path 没有设置正确,都可能产生错误。
      

  4.   

    SERVER必须是本机的ADMINISTRATORS组的用户才能访问加$的地址.
      

  5.   

    SQL是不是只能使用本地的硬盘啊
      

  6.   

    再补充点:
    s_path = "\\" + 本地机器名 + "\C$\test"
    这种方式不可取.首先,不能保证server用户有权限连接客户机。其次,如果客户端不是NT,也就没有$可用。
    所以,建议利用本地共享文件夹。s_path = "\\" + 本地机器名 + "\" + 共享文件夹名
    你可以把本地C\test共享,假设共享名为test,那么s_path = "\\" + 本地机器名 + "\test"就可以了。
      

  7.   

    忧闷!
    to jack_zhan(大熊) :你的方法不行阿
    如果没人会,我只好揭帖了,郁闷
      

  8.   

    在VB如何对ACCESS数据库压缩修复和备份呢
    Public Const FO_MOVE = &H1
    Public Const FO_COPY = &H2
    Public Const FO_DELETE = &H3
    Public Const FOF_NOCONFIRMATION = &H10
    Public Const FOF_NOCONFIRMMKDIR = &H200
    Public Const FOF_ALLOWUNDO = &H40
    Public Const FOF_SILENT = &H4
    Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
    '----------------------------
    Private Sub m_backup_Click() '备份数据库On Error Resume Next            Dim SHFileOp As SHFILEOPSTRUCT            SHFileOp.wFunc = FO_COPY
                SHFileOp.pFrom = App.Path & "\msDATA.mdb"
                SHFileOp.pTo = App.Path & "\back\msDATA.mdb"
                SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
                Call SHFileOperation(SHFileOp)
                MsgBox "备份已完成!"
            Exit SubErrHandler:
                Me.MousePointer = 0End SubPrivate Sub m_restore_Click() '复原数据库
    On Error Resume Next
      Dim oldMdb As String
      Dim newMdb As String
                Dim SHFileOp As SHFILEOPSTRUCT            SHFileOp.wFunc = FO_COPY
                SHFileOp.pFrom = App.Path & "\back\msDATA.mdb"
                SHFileOp.pTo = App.Path & "\msDATA.mdb"
                SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
                Call SHFileOperation(SHFileOp)            MsgBox "复原已完成!"    Exit Sub
    End Sub
    '------------------------------------------------------
    Private Sub m_Compact_Click() '数据库压缩
    On Error Resume Next
      Dim oldMdb As String
      Dim newMdb As String  cnnCMMS.Close  oldMdb = App.Path & "\msDATa.mdb"
      newMdb = App.Path & "\msDATAcopy.mdb"  DBEngine.CompactDatabase oldMdb, newMdb, , , ";"  Kill oldMdb  Name newMdb As oldMdb    Dim sConnect As String
        Dim sSource As String
             sSource = "Data Source=" & App.Path & "\msDATA.mdb"
             sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & sSource
        Set cnnCMMS = New ADODB.Connection
        With cnnCMMS
             .CursorLocation = adUseClient '.Provider = "Microsoft.Jet.OLEDB.4.0"
             .Open sConnect
        End With
        MsgBox "压缩已完成!"
    End Sub
    '*************************************************************************************至于备份,我一般使用两种方式,一种是直接拷贝数据库文件,另外一种是带Zip压缩的。
    先说第一种直接拷贝:
    在工程引用菜单里引用“Microsoft Scripting Runtime”,并且在窗体上放置一个CommonDialog控件,命名为cd,然后代码如下Private Sub cmdBeifen_Click()
        
        Dim fso As New FileSystemObject, fil    Set fil = fso.GetFile("你的数据库路径,比如C:\db1.mdb")
        '下面这句是设置保存对话框的属性,具体可以查看MSDN的帮助。
        cd.Flags = &H5006
        '打开保存对话框
        cd.ShowSave
        '如果用户选择了一个路径并且选择的路径不是原始文件存在的路径,那么
        If cd.FileName <> "" And cd.FileName <> "db1.mdb" Then
            '进行拷贝文件
            fil.Copy (cd.FileName)
            MsgBox "数据备份已经顺利完成!", vbInformation, "恭喜!"
            cd.FileName = "db1.mdb"
        Else
            MsgBox "没有完成备份,请稍后再试!", vbInformation, "提示!"
        End If
    End Sub'*********************************************************************************************