2017-08-24 62 views
0

有沒有辦法在Ms Access中創建一個條件,以按特定(用戶輸入)月份和年份從日期/時間列中獲取所有數據。按日期名稱的MS Access DatePart(「m」,[date])

我需要做類似如下:

​​

,然後在表中有年份和月份顯示的所有數據。

謝謝你的幫助。 我解決了以下幾點:

DatePart("m",[date])=Month(DateValue(Left([Month],3) & "-01-2017")) And DatePart("yyyy",[date])=[year] 

PS。 [日期]是包含日期/時間數據和[月]的列,[年]是提示用戶輸入的內容。

因此,用戶需要一個月的時間:她可以輸入:8月或8月或8月,它會得到一個整數的月份。

+0

那麼它會返回數字,所以'DatePart(「m」,[date])= 8'('monthname(datepart(「m」,date))=「August」''到'monthname'使它使用縮寫) –

回答

0

使用Format而不是DatePart

Like "* " & Format([date], "mmm") = "Aug" AND DatePart("yyyy", [date]) = 2017 

需要注意的是它的 「月」 而不是 「月」,如果你真的要使用 「八月」,那麼這將做到:

Like "* " & LCase(Format([date], "mmm")) = "aug" AND DatePart("yyyy", [date]) = 2017 
0

謝謝你所有的幫助。我通過以下解決方案:

DatePart("m",[date])=Month(DateValue(Left([Month],3) & "-01-2017")) And DatePart("yyyy",[date])=[year] 

PS。 [日期]是包含日期/時間數據和[月]的列,[年]是提示用戶輸入的內容。

因此,用戶需要一個月的時間:她可以輸入:8月或8月或8月,它會得到一個整數的月份。

0

你永遠不應該處理日期,如字符串,數字,沒有例外。

所以轉換您的文本輸入日期值和創建間隔:

>=CDate([Enter Month] & Str([Enter Year])) And <DateAdd("m",1,CDate([Enter Month] & Str([Enter Year]))) 

不要在查詢中指定的年份和月份參數文本和整數。