MS Access日期范围功能会降低查询

时间:2015-11-03 15:16:24

标签: function ms-access access-vba between

我有一个查询,其中我使用between语句来提取日期范围的数据。我有一个VBA函数,它将评估表中的最后日期(最大日期)(以获取中间的第一个日期)和另一个评估停止日期(中间的最后日期)的函数...所以我的日期语句之间如下所示:在hhMaxDte()和hhLastDte()

之间

出于某种原因,在我的语句中使用这两个函数需要运行查询的时间比我只需要手动将实际日期放在自己中要长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

1 个答案:

答案 0 :(得分:1)

我根据上述评论中的反馈找出了答案。该函数正在为每行数据运行,因此显着减慢了结果的返回。为了避免这种情况,我使用内置函数Dmax(分析表中的最大索引日期)和Date来在Access查询条件部分中创建一个between语句:

Between DMax("row_date","HH_CIB_Raw_Data")+0 And Date()-1

现在,追加查询能够根据表中缺失的最近日期动态提取数据,并在几秒钟内运行VS 2-3分钟。 感谢所有输入人员!!