当使用vb6closures对象时,不允许操作

我有一个从存储过程带来的数据的Excel文件,它的工作原理是完美的,现在我已经改变了存储过程的另一个与旧的相同的参数,但我得到一个错误:“操作不当对象closures时允许“,在循环中:Do While not rsData.EOF

这里发生了什么事情:

Set dbConnection = New ADODB.Connection dbConnection.ConnectionString = connStr dbConnection.ConnectionTimeout = 60 dbConnection.Open Set Cmd = New ADODB.Command Cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc Cmd.ActiveConnection = dbConnection Dim myrealenddate As Date 'Create 2 output parameters Set pm1 = Cmd.CreateParameter("@DateIni", adDBDate, adParamInput, 15, CDate(Sheet1.TextBoxfechainiG)) Set pm2 = Cmd.CreateParameter("@DateEnd", adDBDate, adParamInput, 15, CDate(Sheet1.TextBoxfechaendG)) 'Append the output parameters to command object Cmd.Parameters.Append pm1 Cmd.Parameters.Append pm2 Cmd.CommandText = "spProductionReportByDate" 'Cmd.CommandText = "sp_Report_Recv_Metrics" Set rsData = New ADODB.Recordset Set rsData.Source = Cmd rsData.Open I = 4 Do While Not rsData.EOF I = I + 1 Sheet1.Range("A" & I).Value = rsData(0) Sheet1.Range("B" & I).Value = rsData(1) Sheet1.Range("C" & I).Value = rsData(2) Sheet1.Range("D" & I).Value = rsData(3) Sheet1.Range("E" & I).Value = rsData(4) Sheet1.Range("F" & I).Value = rsData(5) Sheet1.Range("G" & I).Value = rsData(6) Sheet1.Range("H" & I).Value = rsData(7) rsData.MoveNext Loop rsData.Close dbConnection.Close 

经过长时间的头痛,我发现了这个问题。 就像我说的那样,这与SP有关,SP和SP之间唯一的区别在于:

设置NOCOUNT ON

我的天啊,那是错误的根本原因,一旦join到坏SP中,它就起作用了!

谢谢很多@Shane Wealti