运行时错误3704在打开的对象上

我正在为这种情况而苦苦挣扎

我有一个查询,当我运行在MSSQL服务器pipe理工​​作室,它给了我18行,它存储在一个单元格。 数据库连接到一个活的服务器,我们想创buildExcel仪表板,所以它刷新与实时数据,并创buildgraphics等….

*****编辑*****

我试过一个非常简单的查询,它可以工作,例如我可以得到

从表中select最大(date时间),我确实有最新的同步。

事情是:我的查询了

1)声明表进行validation2)临时表“with table as();” 对所有的数据进行sorting,并用一些过滤的“RowNumber”对它们进行sorting,稍后调用Where语句,只需要一些行号来避免重复

我认为在这个连接之间必须closures,可以吗?


通常这个代码可以解决,但是对于这个服务器我得到:

“对象closures时不允许运行时错误3704操作”

我search了论坛和谷歌没有运气

Dim con As ADODB.Connection Dim rs As ADODB.Recordset Dim query As String Set con = New ADODB.Connection Set rs = New ADODB.Recordset strCon = "Provider=SQLOLEDB.1;" _ & "Password=*******;" _ & "Persist Security Info=True;" _ & "User ID=********;" _ & "Initial Catalog=*******;" _ & "Data Source=***.**.**.**;" _ & "Use Procedure for Prepare=1;" _ & "Auto Translate=True;Packet Size=4096;" _ & "Use Encryption for Data=False;" _ & "Tag with column collation when possible=False" con.Open (strCon) rs.ActiveConnection = Con 'modified with suggestion below strSQLQuery = Worksheets("Query").Range("B2").Value rs.Open strSQLQuery For i = 0 To rs.Fields.Count - 1 Sheet2.Cells(1, i + 1) = rs.Fields(i).Name Next i Worksheets("Result").Range("A2").CopyFromRecordset rs rs.Close Set rs = Nothing con.Close Set cn = Nothing 

魔术师能帮我吗? 因为现在即时通讯作为一个演示,但我想推广到VB工具,并希望确保它不是一个服务器相关的问题。

先谢谢你

 con.Open (strCon) rs.ActiveConnection = strCon 

应该

 con.Open strCon rs.ActiveConnection = con 

即。 您应该将ActiveConnection设置为刚刚打开的Connection对象,而不是连接string。