我创建了一个用于查询的自定义函数。该函数打开一个小表(50 个单元格)并根据查找结果将日期添加到查询中的一列。该函数执行速度太慢,我认为这可能是因为我为查询中的每条记录打开和关闭了记录集。有没有办法避免每次调用函数时打开记录集并关闭它?我怀疑这首先破坏了使用函数的目的,但我希望有人有解决方案。
在原帖后添加。
基于下面的结构,我需要将表中的描述获取到查询中的 CustomFunctionField 中,并且日期字段是连接。该表包含日期范围,并且查询在日期范围内具有特定日期。
--查询-- ID | 信息 | 日期 | 自定义函数字段
--表-- ID | 开始日期 | 结束日期 | 描述
以下是代码:
Public Function SelectTerm(DateFull)
Dim rstin As DAO.Recordset
Dim dx As Date
Dim dterm As String
Set rstin = CurrentDb.OpenRecordset("tblTerms", dbOpenSnapshot)
dx = "1/1/2000"
If Not rstin.EOF And Not rstin.BOF Then
Do Until rstin.EOF Or dx >= DateFull
dx = rstin.Fields("DateEnd")
rstin.MoveNext
Loop
rstin.MovePrevious
dterm = rstin.Fields("Description")
rstin.Close
End If
SelectTerm = dterm
End Function