删除日期歧义

时间:2016-08-02 14:47:42

标签: access-vba access

我有一个构建过滤器的表单。

我有两个文本框,用作过滤器的开始和结束日期。它们的格式为Short Date

vba代码如下:

Dim fdate4 As Date
Dim fdate5 As Date


fdate4 = Format(txtStart, "yyyy/mm/dd", vbMonday, vbFirstJan1)
fdate5 = Format(txtFinish, "yyyy/mm/dd", vbMonday, vbFirstJan1)

当我在10月1日 - 12月31日尝试过滤并调试表格过滤器时,我看到:

[DutyDate] BETWEEN #01/10/2015# AND #31/12/2015#

但是,它包括1月份的日期。这与表单本身或过滤字符串的格式有关。

我已尝试将CDate与其他格式dd/\mm/\yyyy一起使用,但这些格式都会产生相同的结果。

1 个答案:

答案 0 :(得分:3)

你应该使用这样的东西,因为格式的最后一个参数只有几个星期而且" /"单独不是斜杠而是(本地化)日期分隔符:

Dim fdate4 As String
Dim fdate5 As String

fdate4 = Format(txtStart, "yyyy\/mm\/dd")
fdate5 = Format(txtFinish, "yyyy\/mm\/dd")

乔治缺少的一行:

Me.Filter = "[DutyDate] BETWEEN #" & fdate4 & "# AND #" & fdate5 & "#"
Me.FilterOn = True