2017-08-24 59 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]))) 

不要在查询中指定的年份和月份参数文本和整数。