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



我的自定义类自始至终使用querydef和recordset。通常在每个方法中,我需要一个QueryDef或Recordset,我为CurrentDB()提供一个变量

是否可以在类Initialize sub中设置db=currentDB(),并在terminate sub中设置为none ?

这样做的利弊是什么?

据我所知,您希望在类中只访问一次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

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

可以提高dao的性能。

最新更新