首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"rs.close“和/或"Set rs = Nothing”

"rs.close“和/或"Set rs = Nothing”
EN

Stack Overflow用户
提问于 2017-12-29 01:34:19
回答 3查看 2.1K关注 0票数 3

最佳做法问题:

问:在我的潜艇的末尾,我是否应该关闭打开的记录集&然后"Set rs =空“。

或者,"Set = Nothing“是否就足够了?(我现在有一个混合袋)

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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

票数 1
EN

Stack Overflow用户

发布于 2017-12-29 09:44:27

答案是两者都不需要。它们是Access Basic ( Access 1.x和2.0的VBA的前身)遗留下来的。

在VBA中,垃圾收集器将为您清除它们。

但是很多人--通常包括我--仍然用它们来表示你不打算在函数的后面使用对象--实际上是关闭方法。

不过,请注意,第三方对象--比如ActiveX组件和例如Excel --通常必须关闭和销毁。这也说明了使用这些命令--使之成为编码时的习惯。

票数 3
EN

Stack Overflow用户

发布于 2019-09-07 18:13:57

我用…的解决办法

代码语言:javascript
复制
  rs.Close.
代码语言:javascript
复制
  If Not rs is Nothing then Set rs= Nothing. 

请记住,关闭的记录集可能会重新打开(我在某些情况下使用它)。此外,关闭open...the垃圾收集器可能执行的job...might (不.)的所有操作也是一个很好的实践。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48016397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档