下面是将SQL数据导入EXCEL的代码:
EXEC master..xp_cmdshell ' bcp " SELECT * FROM DB003N.. TS" queryout c:\DB003N1.xls -c -Usa -P'
怎么能让其在VB程序中执行????

解决方案 »

  1.   

    cnn.open .......
    cnn.execute "master..xp_cmdshell ' bcp " SELECT * FROM DB003N.. TS" queryout c:\DB003N1.xls -c -Usa -P'"
      

  2.   

    楼上的语法就不对啊!
    其实我也知道可以用ADO对象
    关键是句代码要作为字符串里面有两上”引号,写不出来啊
      

  3.   


    Private Sub Command1_Click()
        Dim Cmd As ADODB.Command
        Set Cmd = New ADODB.Command
        Sqlstr = "EXEC master..xp_cmdshell ' bcp" & Chr(34) & "SELECT * FROM DB2003N.. TS" & Chr(34) & "queryout c:\DB2003N.xls -c -Usa -P'"
        Cmd.Execute sql
        
    End Sub
    上面这样写语法上是可以通过的,但是意思就不对了!
      

  4.   

    有没有遇到过类似情况的朋友!
    如果不行的话只能放弃这种方法啦,但是用ADO+VBA的速度太慢。而且容易出错!
      

  5.   

    Private Sub Command1_Click()
        Dim cn As New ADODB.Connection
        cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=登陆用户名;Password=登录密码;Initial Catalog=数据库名;Data Source=服务器别名/IP"
        cn.CursorLocation=adUseClient
        cn.Open
        cn.Execute "master..xp_cmdshell ' bcp " SELECT * FROM DB003N.. TS" queryout c:\DB003N1.xls -c -Usa -P'"
    End Sub
      

  6.   

    我犯了个低级错误,ADO没打开。呵呵
    不过楼上的 cn.Execute "master..xp_cmdshell ' bcp " SELECT * FROM DB003N.. TS" queryout c:\DB003N1.xls -c -Usa -P'" 不对