【发布时间】:2011-11-28 15:02:03
【问题描述】:
我开始收到错误 3048 - 无法打开更多数据库。 我似乎已经通过实现单个静态数据库变量来驯服它 在David Fenton's example here 之后的函数“dbLocal()”中。
我仍想监控数据库引用的数量,以了解我与 Access 中的 2048 限制的接近程度。我曾尝试使用 .Recordsets.Count 但它总是返回零。如何确定 Access 内部使用的引用/记录集计数?
我尝试查看的一个地方是“dbLocal()”函数。在这里精简到最低限度(在我的代码中,我使用了 Fenton 的完整示例),我正在尝试这个:
Public Function dbLocal() As DAO.Database
Static dbCurrent As DAO.Database
If dbCurrent Is Nothing Then
Set dbCurrent = CurrentDb()
End If
Set CurDb = dbCurrent
Debug.Print dbCurrent.Recordsets.Count
End Function
但它总是打印零。即使它有效,这也不是我真正想要的,因为(如果我理解正确的话)Access 正在维护自己的会计,其中包括由于查询、组合框等引起的引用,而我的静态变量只会“知道”由于 VBA 语句显式使用此 dbLocal() 函数而导致的引用。
有没有办法查看 Access 的内部会计,以了解我离用完 2048 最大值还有多远?
如果重要:Windows XP Pro SP3;访问 2010 32 位版本 14.0.6024.1000 SP1 MSO 14.0.6112.5000。
【问题讨论】:
-
遗憾的是,上个月去世的大卫·W·芬顿 (David W. Fenton) 没有给你答复:(
-
@onedaywhen 太伤心了。我想知道他为什么不在身边。不知道有没有纪念页?