拥有包含2个日期字段和金额字段的MS Access表单。
这个想法是允许用户对表单应用过滤器来过滤2个日期之间和某个数量之上的结果。但是结果不一致,并且它倾向于列出结果中mm/dd/yyyy
和dd/mm/yyyy
格式的两个日期。我只想要dd/mm/yyyy
这就是短日期和系统日期的设置。
strCriteria =
"([Order Date] >= #" & Me.txtOrderDateFrom & "#
AND [Order Date] <= #" & Me.txtOrderDateTo & "#
And [Order Amount]>= " & (CLng(Me.txtSumOfLinePrice)) & ")"
task = "select * from OrderListQ where (" & strCriteria & ") order by [order date]"
DoCmd.ApplyFilter task
答案 0 :(得分:0)
您必须为日期值的字符串表达式应用适当的格式:
strCriteria = "[Order Date] >= #" & Format(Me!txtOrderDateFrom.Value, "yyyy\/mm\/dd") & "# AND [Order Date] <= #" & Format(Me!txtOrderDateTo.Value, yyyy\/mm\/dd") & "# And [Order Amount] >= " & Str(Me!txtSumOfLinePrice.Value) & ""
答案 1 :(得分:-1)
为了避免任何日期格式问题,我发现使用DD MMM yyyy格式可以在服务器和机器上运行 2016年1月10日比2016年10月1日或2016年1月10日更可靠
strCriteria = "[Order Date] >= #" & Format(Me!txtOrderDateFrom.Value, "dd MMM yyyy") & "# AND [Order Date] <= #" & Format(Me!txtOrderDateTo.Value, dd MMM yyyy") & "# And [Order Amount] >= " & Str(Me!txtSumOfLinePrice.Value) & ""
对于有问题使用格式的人(日期,&#34;长日期&#34;)