过滤器的格式需要与记录集中的值具有相同的格式。我刚刚遇到了来自 MS SQL 服务器的记录集的相同问题。记录集包含 YYYY-MM-DD 格式的日期。
这失败了:
CalendarRS.filter = "DateField = #" & datevalue(DisplayDate) & "#"
即使日期匹配,过滤的记录集中也没有记录。选中后,CalendarRS.filter 中存储的值为“DateField = #08/29/2014#” 请注意,其中包含正斜杠并且顺序不同(MM/DD/YYYY)
这成功了:
CalendarRS.filter = "DateField = #" & year(datevalue(DisplayDate)) & "-" & right("00" & month(datevalue(DisplayDate)),2) & "-" & right("00" & day(datevalue(DisplayDate)),2) & "#"
选中后,CalendarRS.filter 中存储的值为“DateField = #2014-08-2014#”。这返回了正确的过滤记录集。
对于完整的日期和时间,您需要做同样的事情并添加小时、分钟、秒。
CalendarRS.filter = "DateField = #" & year(datevalue(DisplayDate)) & "-" & right("00" & month(datevalue(DisplayDate)),2) & "-" & right("00" & day(datevalue(DisplayDate)),2) & " " & Right("00" & Hour(datevalue(DisplayDate)),2) & ":" & Right("00" & Minute(datevalue(DisplayDate)),2) & ":" & Right("00" & Second(datevalue(DisplayDate)),2) & "#"