MS Access 日期范围功能减慢查询速度
MS Access date range functions slowing down query
我有一个查询,其中我使用 between 语句提取日期范围内的数据。我构建了一个 VBA 函数,它将评估 table 中的最后日期(最大日期)(以获取介于两者之间的第一个日期)和另一个函数来评估停止日期(最后日期between)...所以我的日期声明看起来像这样: Between hhMaxDte() And hhLastDte()
出于某种原因,在我的 between 语句中使用这 2 个函数似乎 运行 比我自己手动输入实际日期要长 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
我根据上面评论中的反馈找到了答案。该函数对每一行数据都是 运行,因此显着减慢了结果的 return。为了避免这种情况,我使用内置函数 Dmax(分析 table 中的最大索引日期)和 Date 在 Access 查询条件部分中创建一个 between 语句:
Between DMax("row_date","HH_CIB_Raw_Data")+0 And Date()-1
现在追加查询能够根据 table 中缺失的最近日期动态提取数据,并在几秒内运行 VS 2-3 分钟。
感谢所有输入的人!!
我有一个查询,其中我使用 between 语句提取日期范围内的数据。我构建了一个 VBA 函数,它将评估 table 中的最后日期(最大日期)(以获取介于两者之间的第一个日期)和另一个函数来评估停止日期(最后日期between)...所以我的日期声明看起来像这样: Between hhMaxDte() And hhLastDte()
出于某种原因,在我的 between 语句中使用这 2 个函数似乎 运行 比我自己手动输入实际日期要长 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
我根据上面评论中的反馈找到了答案。该函数对每一行数据都是 运行,因此显着减慢了结果的 return。为了避免这种情况,我使用内置函数 Dmax(分析 table 中的最大索引日期)和 Date 在 Access 查询条件部分中创建一个 between 语句:
Between DMax("row_date","HH_CIB_Raw_Data")+0 And Date()-1
现在追加查询能够根据 table 中缺失的最近日期动态提取数据,并在几秒内运行 VS 2-3 分钟。 感谢所有输入的人!!