通过不返回行的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
- MVC运行一个存储过程导出到entity framework外的Excel
- 通过存储过程从Excel导入数据
- 使用多个输出在VBA中执行SQL Server存储过程
- VBScript / VBA退出Excel应用程序受标准Excel事件的影响
- VBA – 从Access生成Excel文件(QueryTable)
- SQL Server 2014 – 链接的Excel文件上的错误15281
- MYSQL语句在进入框架时工作,在保存mysql时不能得到框架与函数一起工作
- 使用Excel 2010使用存储过程读取/写入到SQL Server 2008数据库
- 显示自定义错误消息,如果数据types不匹配时,将excel文件读入数据库(在C#程序中)