2017-09-20 11 views
-2

明日と昨日の日付を表示するためにフォームをフィルタしたいと思います。明日と昨日の検索方法

フォームは次のマクロ

if [Forms]![issues]![OpenedDateFilter]="today" 
applyfilter 
where condition 
(Year([Opened Date])=Year(Date()) And Month([Due Date])=Month(Date()) And 
Day([Opened Date])=Day(Date())) 

で今日のためにうまく機能しているが任意のヘルプまたはポインタをありがとうございました。

+2

今日がある場合 '日()'そして昨日は)(日 'です - 明日は 'Date()+ 1'です。 – YowE3K

答えて

0

"tommorrow"と "yesterday"は別の年になる可能性があることを考慮する必要があります。タイプミスではありません

Dim Offset As Integer 

Select Case [Forms]![issues]![OpenedDateFilter] 
    Case "tomorrow" 
     Offset = 1 
    Case "yesterday" 
     Offset = -1 
    Case Else 
     Offset = 0 
End Select 

Me.Filter = "[Opened Date] = #" & Format(DateAdd("d", Offset, Date), "yyyy\/mm\/dd") & "#" 
Me.FilterOn = True 

[Due Date]場合、あなたはDateSerialの使用することができます:このように、DateAdd関数を使用

Me.Filter = "[Opened Date] = #" & Format(DateSerial(Year(Date), Month([Due Date]), Day(Date) + Offset), "yyyy\/mm\/dd") & "#" 
+0

比較に使用されている月は、[[公開日]]ではなく[[期日]]に基づいています。そして 'DateAdd(" d "、Offset、Date)'は 'Date()+ Offset'に単純化することができます。 – YowE3K

+0

ありがとう、それを逃した。回答が拡大されました。 – Gustav