我继承了很多基本上是这样的代码:
dim dbs as dao.database
set dbs = currentdb()
dbs.execute "Some SQL string"
set dbs = nothing
是否有任何理由不将其重新编码为:
currentdb().execute "some SQL string"
(我知道,如果我想使用.recordsaffected,currentdb()。recordsaffected不会产生可用的结果)。
除了简化代码之外,重新编码还有什么好处?
最佳答案
简单地使用CurrentDb.Whatever
是一个诱人的捷径,但是在很多情况下,它会导致奇怪的行为。这是因为CurrentDb
本身不是Object,而是返回当前Database对象副本的Function。
几年前,我无数次尝试调试CurrentDb
,就像它是一个对象之后,我调试了我知道是“正确”的代码,这是...一旦我创建了正确的DAO.Database
对象(Set cdb = CurrentDb
)并使用了cdb.Whatever
,的CurrentDb.Whatever
。