我有一个 Excel 文件,它从存储过程中获取数据,它工作得很好,现在我已经用另一个具有与旧存储过程相同的参数的存储过程更改了存储过程,但我收到一个错误:“对象关闭时不允许进行操作”,循环处: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 之间的唯一区别就是这一行:
设置不计数
天哪,这就是错误的根本原因,一旦添加到坏的 SP 中,它就起作用了!
非常感谢@Shane Wealti
关于excel - 使用vb6关闭对象时不允许进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718175/