excel - 使用vb6关闭对象时不允许进行操作

标签 excel vb6

我有一个 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/

相关文章:

vb6 - 遗留 Visual Basic 代码中的隐式 ByRef

database - 在 VB6 中检测悲观锁

excel - VBA编译错误-预期If或Select或Sub或Function或End语句

vb6 - Crystal Reports 8.5 vb6 并发许可证问题

excel - 在 Windows 8 中以编程方式取消保护 MS Excel VBA 项目

vba - Shell.namespace 不接受字符串变量,但接受字符串本身

mysql - 运行时填写的数据报表显示相同的记录,而不是每条不同的记录

vb6 - 陷阱错误或 'Resume Next'

excel - 如何从 access 数据库创建非常大的 excel 文件?

vba - Excel/VBA - 如何在字符串中每 N 个字符插入一个字符