通过不返回行的VBA执行SQL Server存储过程

如何通过Excel VBA执行特殊的SQL Server存储过程? 特别的,因为它不像这个过程那样返回行:

select * from tab1 

如何执行我们所说的编写报告的程序,如下所示:

 select * into tab2 from tab1 

它不返回任何行。

我正在使用这个VBA代码:

 Dim cnn As Object Set cnn = CreateObject("ADODB.Connection") Dim cmd As Object Set cmd = CreateObject("ADODB.Command") Dim rs As Object Set rs = CreateObject("ADODB.Recordset") Dim ConnectionString As String cnn.ConnectionString = "driver={SQL Server};server=MYSERVERNAME;Database=MYDATABASE;Trusted_Connection=yes;" cnn.Open Sql = "EXEC [dbo].[Procedure_make_report] 'param1'" Set rs = cnn.Execute(Sql) 

我得到的错误:

运行时错误2147217900

我在这里find了一个线索: http ://www.vbforums.com/showthread.php?541498-RESOLVED-runtime-error-2147217900-(80040e14)-incorrect-syntax-error

但我不知道什么动作查询

基于罗里和汤姆的评论,我留下了有效的答案。

 Dim cnn As Object Set cnn = CreateObject("ADODB.Connection") Dim cmd As Object Set cmd = CreateObject("ADODB.Command") cmd.CommandType = 1 ' adCmdText cmd.CommandTimeout = 120 ' number of seconds to time out Dim ConnectionString As String cnn.ConnectionString = "driver={SQL Server};server=MYSERVERNAME;Database=MYDATABASE;Trusted_Connection=yes;" cnn.Open Dim SQL As String SQL = "EXEC [dbo].[Procedure_make_report] 'param1'" cnn.Open cmd.CommandText = SQL cmd.ActiveConnection = cnn cmd.Execute If Not cnn Is Nothing Then cnn.Close Set cnn = Nothing End If