過濾器的格式需要與記錄集中的值格式相同。我剛剛遇到了來自MS SQL服務器的記錄集的相同問題。該記錄集包含YYYY-MM-DD格式的日期。
這種失敗:
CalendarRS.filter = "DateField = #" & datevalue(DisplayDate) & "#"
即使日期匹配,沒有記錄是在過濾記錄。勾選後,存儲在CalendarRS.filter值是「的DateField =#08中/二千○十四分之二十九#」請注意,這包括正斜槓和順序是不同的(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) & "#"