MS Access 2010 日期范围结果不符合要求
MS Access 2010 Date range results not as desired
我正在使用此命令打开报告
DoCmd.OpenReport "fullreport_rpt", acViewReport, , _
"[Assignment] ='" & lngMyEmpID & "' AND [Start] BETWEEN DateValue(#" & Me.DateRange1_txt & "#) AND DateValue(#" & Me.DateRange2_txt & "#)", _
acDialog, OpenArgs:=Me.reporting_combo & " For " & Me.rMonthly_txt & Me.DateRange1_txt & "-" & Me.DateRange2_txt
[Start] 是 DateValue([StartTime]),StartTime 是一个 DateTime 字段。
我想生成从 2015 年 1 月 5 日到 2015 年 5 月 20 日的报告,但生成的报告包含 2015 年 4 月的行;
图片link是http://s29.postimg.org/i066yqbl3/scrshot.png
不确定它有什么问题。
如有任何帮助,我将不胜感激。
正确使用 DateValue:
BETWEEN DateValue(" & Me.DateRange1_txt & ") AND DateValue(" & Me.DateRange2_txt & ")", _
DateValue("1-5-2015") returns 2015-05-01 而
DateValue(#1-5-2015#) 使用您的设置 returns 2015-01-05,其中将包括四月的日期。
我会通过两种方式做到这一点。首先是将日期值转换为 Double,因为这是 JET 解释日期的方式。
DoCmd.OpenReport "fullreport_rpt", acViewReport, , _
"[Assignment] = '" & lngMyEmpID & "' AND [Start] BETWEEN " & CDbl(Me.DateRange1_txt) & " AND " & CDbl(Me.DateRange2_txt) & _
, acDialog, OpenArgs:=Me.reporting_combo & " For " & Me.rMonthly_txt & Me.DateRange1_txt & "-" & Me.DateRange2_txt
使用 CDbl 是对来自日期控件的日期的非常有效的操作。如果还有的话,你需要使用正确的格式,Access有问题International Date Formats,所以试试这个。
DoCmd.OpenReport "fullreport_rpt", acViewReport, , _
"[Assignment] = '" & lngMyEmpID & "' AND [Start] BETWEEN " & Format(Me.DateRange1_txt, "\#mm\/dd\/yyyy\#") & " AND " & Format(Me.DateRange2_txt, "\#mm\/dd\/yyyy\#") & _
, acDialog, OpenArgs:=Me.reporting_combo & " For " & Me.rMonthly_txt & Me.DateRange1_txt & "-" & Me.DateRange2_txt
我正在使用此命令打开报告
DoCmd.OpenReport "fullreport_rpt", acViewReport, , _
"[Assignment] ='" & lngMyEmpID & "' AND [Start] BETWEEN DateValue(#" & Me.DateRange1_txt & "#) AND DateValue(#" & Me.DateRange2_txt & "#)", _
acDialog, OpenArgs:=Me.reporting_combo & " For " & Me.rMonthly_txt & Me.DateRange1_txt & "-" & Me.DateRange2_txt
[Start] 是 DateValue([StartTime]),StartTime 是一个 DateTime 字段。
我想生成从 2015 年 1 月 5 日到 2015 年 5 月 20 日的报告,但生成的报告包含 2015 年 4 月的行;
图片link是http://s29.postimg.org/i066yqbl3/scrshot.png
不确定它有什么问题。
如有任何帮助,我将不胜感激。
正确使用 DateValue:
BETWEEN DateValue(" & Me.DateRange1_txt & ") AND DateValue(" & Me.DateRange2_txt & ")", _
DateValue("1-5-2015") returns 2015-05-01 而
DateValue(#1-5-2015#) 使用您的设置 returns 2015-01-05,其中将包括四月的日期。
我会通过两种方式做到这一点。首先是将日期值转换为 Double,因为这是 JET 解释日期的方式。
DoCmd.OpenReport "fullreport_rpt", acViewReport, , _
"[Assignment] = '" & lngMyEmpID & "' AND [Start] BETWEEN " & CDbl(Me.DateRange1_txt) & " AND " & CDbl(Me.DateRange2_txt) & _
, acDialog, OpenArgs:=Me.reporting_combo & " For " & Me.rMonthly_txt & Me.DateRange1_txt & "-" & Me.DateRange2_txt
使用 CDbl 是对来自日期控件的日期的非常有效的操作。如果还有的话,你需要使用正确的格式,Access有问题International Date Formats,所以试试这个。
DoCmd.OpenReport "fullreport_rpt", acViewReport, , _
"[Assignment] = '" & lngMyEmpID & "' AND [Start] BETWEEN " & Format(Me.DateRange1_txt, "\#mm\/dd\/yyyy\#") & " AND " & Format(Me.DateRange2_txt, "\#mm\/dd\/yyyy\#") & _
, acDialog, OpenArgs:=Me.reporting_combo & " For " & Me.rMonthly_txt & Me.DateRange1_txt & "-" & Me.DateRange2_txt