フィルタの形式は、レコードセットの値と同じ形式である必要があります。私はちょうどMS SQLサーバーからのレコードセットで同じ問題に遭遇しました。レコードセットには、YYYY-MM-DD形式の日付が含まれていました。
この
に失敗しました:
CalendarRS.filter = "DateField = #" & datevalue(DisplayDate) & "#"
日付が一致した場合であっても、レコードがフィルタリングされたレコードセットではなかったです。チェックすると、CalendarRS.filterに格納された値でした "のDateField =#08/2014分の29#" これはスラッシュが含まれていることと、順序が(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) & "#"