我参照网上的资料写的,但是老是提示“打开备份设备失败”具体代码如下:Private Sub RainButton1_Click()    MsgBox "测试开始", vbExclamation, "提示:"
    If shlShell Is Nothing Then
         Set shlShell = New Shell32.Shell
    End If
    
    '先创建一个共享的路径
    Shell "C:\windows\system32\cmd.exe /c  net share  test=c:\test"
    
    Shell "C:\windows\system32\cmd.exe /c  net use \\192.168.1.56\test  sdfgsf  /user:domain\lt"
    
    '调用存储过程
    
    '声明ADODB链接对象
    Dim connBack As New ADODB.Connection
    '声明字符串,用来保存连接字符串,可以通过.udl文件来生成,或者使用Adodc控件生成。
    Dim CnStr As String
    '声明字符串,用来保存sql语句
    Dim Sql As String
    '文件名
    Dim strFileName As String
    '文件路径
    Dim strFilePath As String
    If IsEmp(txtFileName, "文件名") Then Exit Sub
    '判断文件的后缀名
    If LCase(Right(txtFileName.Text, 4)) = ".bak" Then
        strFileName = txtFileName.Text
    Else
        strFileName = txtFileName.Text + ".bak"
    End If
    strFilePath = txtFilePath.Text    '初始化连接字符串
    CnStr = "Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=192.168.1.103"
    
    Sql = "backup database mms to disk='\\192.168.1.56\test\" & strFileName & "'"    connBack.Open CnStr        '打开链接
    connBack.Execute Sql       '执行Sql语句进行备份
    connBack.Close             '关闭链接
    
    Shell "C:\windows\system32\cmd.exe /c  net share  test /delete"
    MsgBox "数据备份成功!", vbExclamation, "提示:"请高人指点迷津啊

解决方案 »

  1.   

    '这是将你本地创建的共享目录赋给当前本地用户访问权,无用功
    Shell "C:\windows\system32\cmd.exe /c  net use \\192.168.1.56\test  sdfgsf  /user:domain\lt"'----------------------------------
        connBack.Open CnStr    Sql = "xp_cmdshell C:\windows\system32\cmd.exe /c  net use \\192.168.1.56\test  sdfgsf  /user:domain\lt'"
        connBack.Execute Sql       '这才是在服务器上访问共享目录    Sql = "backup database mms to disk='\\192.168.1.56\test\" & strFileName & "'"
        connBack.Execute Sql    connBack.Close
      

  2.   

    权限问题通常是网络管理的问题,你要保证手工操作成功:客户端用命令行将目录共享出来,然后跑到服务器上用查询分析器测试sql命令。