ms-access - set dbs=currentdb() 和直接使用 currentDB() 之间有什么重要区别吗?

标签 ms-access

我继承了很多本质上是这样的代码:

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/

相关文章:

sql - 如何找出哪些 SQL Server 表链接到 MS Access?

c# - 使用 C#/VBScript 获取 mdb 文件 (msaccess) 中的所有源代码

database - 从一个字段可能有多个值的数据库中查询

ms-access - Access 2010 VBA - 查询开始时打开的对话框,查询完成时关闭的对话框

java - "language converters"的经验?

sql - 通过 VBA/SQL 从 Excel 应用程序更新 Microsoft Access 表字段

excel - 如何在 MS Access 中为 Excel 电子表格导入提供错误处理

database - 如何从脚本创建 Access 数据库

vba - Access 2019 中的智能感知

java.sql.SQLException : Invalid handle