0
我有一个查询,我正在使用between语句为日期范围提取数据。我建立了一个VBA函数,它将评估表格中的最后日期(最大日期)(以获取第一个日期)和另一个函数来评估停止日期(之间的最后一个日期)...所以我的在日期声明之间看起来像这样:在hhMaxDte()和hhLastDte()之间hhMaxDte()和hhLastDte()MS访问日期范围函数减慢查询
由于某些原因,在我的两个函数之间的语句需要什么似乎比运行查询的时间长8倍,如果我只是手动输入实际日期在我自己。任何人都知道这是为什么,以及我如何动态地做类似的过程,但花费相同的时间来运行查询,就像我手动输入日期一样?我的功能代码如下:
Function hhMaxDte()
If DMax("row_date", "HH_CIB_Raw_Data") + 1 = Date Then
hhMaxDte = 0
Else
hhMaxDte = DMax("row_date", "HH_CIB_Raw_Data") + 1
End If
End Function
Function hhLastDte()
If DMax("row_date", "HH_CIB_Raw_Data") + 1 = Date Then
hhLastDte = 0
Else
hhLastDte = Date - 1
End If
End Function
根据您的描述,我猜测这两个函数会针对每条记录运行,即使它们没有必要,因为它们不使用任何记录特定的参数。 – SunKnight0
是的,我只是偶然发现你在这里说的:http://allenbrowne.com/QueryPerfIssue.html – wlfente
这些函数只会被调用一次,因为它们没有任何参数,所以如果你调整你的查询替换具有固定值的函数,你会看到几乎相同的结果。然而,没有你的询问,你会让我们在野外猜测。这可能是因为你错过了日期字段的索引。 – Gustav