我正在使用Excel / vba将查询发送到SQL Server。该查询类似于:
queryExample
如果我在SQL Server Management Studio中运行此查询,则会获得所需的结果,但是当我从Excel / vba运行该查询时,会出现错误
关闭对象时不允许操作。
我试图这样将其传递给SQL Server Management Studio(其中Dim rs As New ADODB.Recordset
Set Connection = New ADODB.Connection
Connection.ConnectionString = "... connection string ..."
Connection.Open
With rs
.ActiveConnection=Connection
.Open queryExample
End With
是我的查询):
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Set Connection = New ADODB.Connection
cmd.CommandText = queryExample
cmd.CommandType = adCmdText
cmd.ActiveConnection = Connection
Set rsSR = cmd.Execute
像这样
exec()
,但没有任何效果,而且我总是遇到相同的错误。我认为问题出在select top 10 col1, col2, col3 from sometable
函数中,因为如果我这样传递查询:
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Set Connection = New ADODB.Connection
Connection.ConnectionString = "... connection string ..."
Connection.Open
cmd.CommandText = queryExample
cmd.CommandType = adCmdText
cmd.ActiveConnection = Connection
Set rsSR = cmd.Execute
我没有收到任何错误,并且记录集中填充了数据。
我在做什么错?任何帮助,将不胜感激。
谢谢。
编辑:
在复制用于最后一个示例的vba代码以将查询传递到SQL Server Management Studio时,我犯了一个错误,实际代码是:
<project basedir="..">
在两种情况下都打开了连接-Connection对象的.State的值为1。