2012-01-03 92 views
2

我有一個從存儲過程中獲取數據的excel文件,它工作得很完美,現在我已經用另一個存儲過程改變了存儲過程,一個,但我得到一個錯誤:「當對象被關閉的操作是不允許的」,在循環:你雖然不是rsData.EOF當使用vb6關閉對象時不允許操作

世界到底是怎麼發生的事情:

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 
+0

顯然'rsData'從未打開。 – 2012-01-03 20:29:30

+0

確實是這樣的原因,但是如何,rsData.Open – Somebody 2012-01-03 20:35:16

+0

rsData.Open可能是錯誤的。找出錯誤並更新您的問題。 – 2012-01-03 20:36:29

回答

5

經過漫長的頭痛後,我發現了這個問題。就像我說的,這是一件與SP的關係,良好的SP和不良SP之間的唯一區別是這條線:

SET NOCOUNT ON

我的上帝,這是錯誤的根源,一旦加到壞SP,它的工作!

非常感謝@Shane Wealti

相關問題