我有一个构建过滤器的表单。
我有两个文本框,用作过滤器的开始和结束日期。它们的格式为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
一起使用,但这些格式都会产生相同的结果。
答案 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