MS Access DBA CurrentDB()自定义类中的最佳实践

时间:2015-10-02 15:01:55

标签: ms-access access-vba

我的自定义类始终使用QueryDefs和Recordsets。通常在每个方法中我都需要QueryDef或Recordset,我为CurrentDB()

提供了一个变量

是否可以在类Initialize sub中设置db = currentDB()并在terminate子中将其设置为空?

这样做的优点和缺点是什么?

1 个答案:

答案 0 :(得分:1)

据我所知,您只想在课堂上访问currentdb()一次以提高性能。

基本上如果你调用currentdb(),MS Access会刷新它的集合并为你提供对象。多次调用currentdb可能会强制应用程序无故刷新。这会拖延你的表现。

您可以做的是使用全局函数来检索currentdb对象。

创建一个模块并尝试此功能:

private mMY_DB as dao.database

Public Function FN_GET_CRR_DB() As DAO.Database
    If (mMY_DB Is Nothing) Then Set mMY_DB = CurrentDb
    Set FN_GET_CRR_DB = mMY_DB
End Function

现在改为currentdb,您可以在整个应用程序中使用fn_get_crr_db。它的作用是访问Access对象并将其保存在私有变量中供您使用。一旦变量丢失,它会通过调用currentdb一次刷新它。

这可以提高你的dao表现。