我继承了很多本质上是这样的代码:
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
本身并不是一个对象,它是一个返回当前数据库对象副本的函数。
几年前,我发誓不再尝试使用 CurrentDb
,就像它是一个对象一样,在我无数次调试代码时,我知道是“正确的”,而且它是...一旦我创建了一个正确的 DAO.Database
对象(Set cdb = CurrentDb
)并使用 cdb.Whatever
而不是 CurrentDb .无论如何
.
关于ms-access - set dbs=currentdb() 和直接使用 currentDB() 之间有什么重要区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416876/