最佳做法问题:
问:在我的潜艇的末尾,我是否应该关闭打开的记录集&然后"Set rs =空“。
或者,"Set = Nothing“是否就足够了?(我现在有一个混合袋)
Private Sub btnSave_Click()
Dim db As Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Desc_Mfg_Norm", dbOpenTable)
'do stuff
Exit:
rs.Close
Set rs = Nothing
Set db = Nothing
exit sub发布于 2017-12-29 01:54:18
人们倾向于称你所做的是“最佳实践”,但你可以绕过尊重所有最佳实践的密切方法。从正式文件:
An alternative to the Close method is to set the value of an object variable to Nothing (Set dbsTemp = Nothing).
来源:https://msdn.microsoft.com/en-us/library/office/ff836011.aspx
发布于 2017-12-29 09:44:27
答案是两者都不需要。它们是Access Basic ( Access 1.x和2.0的VBA的前身)遗留下来的。
在VBA中,垃圾收集器将为您清除它们。
但是很多人--通常包括我--仍然用它们来表示你不打算在函数的后面使用对象--实际上是关闭方法。
不过,请注意,第三方对象--比如ActiveX组件和例如Excel --通常必须关闭和销毁。这也说明了使用这些命令--使之成为编码时的习惯。
发布于 2019-09-07 18:13:57
我用…的解决办法
rs.Close. If Not rs is Nothing then Set rs= Nothing. 请记住,关闭的记录集可能会重新打开(我在某些情况下使用它)。此外,关闭open...the垃圾收集器可能执行的job...might (不.)的所有操作也是一个很好的实践。
https://stackoverflow.com/questions/48016397
复制相似问题