3
我有一個ADO記錄集變量在用戶窗體的類模塊中聲明。該記錄是在窗體的Activate事件開了,我想用代碼關閉它在形式的終止事件是這樣的:關閉打開的記錄集會產生運行時錯誤
Private Sub UserForm_Terminate()
If VersionIsReleased Then
ThisWorkbook.Parent.Quit
Else
If Not m_rs Is Nothing Then
If m_rs.State = adStateOpen Then
m_rs.Close
End If
Set m_rs = Nothing
End If
Close_CN g_cn
ThisWorkbook.Application.Visible = True
End If
End Sub
線m_rs.Close
產生一個運行時錯誤:「操作中不允許這個背景。「任何想法爲什麼發生這種情況
我在想,當您運行Terminate事件時變量是否已經被破壞? –
此外,也許你不需要根據微軟的**明確殺死它** - 請參閱[MSDN博客此條目](http://blogs.msdn.com/b/ericlippert/archive/2004/04 /28/when-are-you-required-to-set-objects-to-nothing.aspx) - 當用戶表單從內存中卸載時,該變量將超出範圍(並且已被破壞) –
作爲一般性評論 - 您希望避免終結器/解構器/退出處理器中的任何運行時錯誤。在這種情況下,我會把錯誤恢復下一步作爲第一行。 – Juliusz