MS Access 2010表单过滤器与去年不起作用

时间:2016-06-06 07:44:28

标签: database forms date ms-access filter

我有一个表单,其中我有一个子表单链接到一个包含各种列和行的表,其中一个是Date Created列。 在这种形式中,有一个按钮可以过滤子表单,以便显示从半年前开始的所有记录,这里是变量的代码

startDate_S = Replace(Format(DateAdd("m", -6, Date), "mm/dd/yyyy"), ".", "/")

过滤器本身

ProbSub.Form.Filter = "[Date Created] > #" & startDate_S & "#"

DateAdd()将当前日期设置为6个月,Format()和Replace()将日期格式更改为美国日期格式而不是本地格式(MS Access过滤器仅使用此标准)。 我使用消息框来查看格式是否正确,它返回" 12/06 / 2015"。 但它没有返回任何行(我有3个日期创建值为" 06/03/2016")。通过调试,我发现只有在开始日期是一年前或之后,例如,当startDate_S是" 01/01/2016"或更高的工作,但当它是" 12/31/2015"或者降低它没有。

1 个答案:

答案 0 :(得分:0)

需要替换:

startDate_S = Format(DateAdd("m", -6, Date), "mm\/dd\/yyyy")

如果[Date Created]的数据类型为Date,则过滤器应该有效,但如果是Text,则不行。如果是这样的话:

ProbSub.Form.Filter = "DateValue([Date Created]) > #" & startDate_S & "#"