按日期过滤报告
Filtering a report by date
我正在尝试打开一个基于日期查询的报表,该日期基于生成打开报表事件的窗体上的控件。查看代码,很明显报告上的日期 (Effective_date) 由于某种原因未被识别。可能是日期格式问题?
Private Sub Comando145_Click()
DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = " & LastUpdateDate, acIcon
End Sub
看看这是否有所作为:
Private Sub Comando145_Click()
DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = #" & LastUpdateDate & "#", acIcon
End Sub
好的,现在我们知道这行得通了。另一件事:)您可能会考虑在传递值之前对其进行测试。 (捕捉空值和任何其他奇怪的情况。在这种情况下,一种简单的方法是像这样检查:
Private Sub Comando145_Click()
Dim dtVal As Date
If Not IsNull(LastUpdateDate) Then
If IsDate(LastUpdateDate) Then
dtVal = CDate(LastUpdateDate)
DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = #" & dtVal & "#", acIcon
End If
End If
End Sub
编辑
原因是就像字符串需要用引号 ("I am a string") 一样,日期需要用散列标记 (#01/01/2015#)。如果字段类型是日期,或者如果您希望将值视为日期,那么您将需要## :)
我正在尝试打开一个基于日期查询的报表,该日期基于生成打开报表事件的窗体上的控件。查看代码,很明显报告上的日期 (Effective_date) 由于某种原因未被识别。可能是日期格式问题?
Private Sub Comando145_Click()
DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = " & LastUpdateDate, acIcon
End Sub
看看这是否有所作为:
Private Sub Comando145_Click()
DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = #" & LastUpdateDate & "#", acIcon
End Sub
好的,现在我们知道这行得通了。另一件事:)您可能会考虑在传递值之前对其进行测试。 (捕捉空值和任何其他奇怪的情况。在这种情况下,一种简单的方法是像这样检查:
Private Sub Comando145_Click()
Dim dtVal As Date
If Not IsNull(LastUpdateDate) Then
If IsDate(LastUpdateDate) Then
dtVal = CDate(LastUpdateDate)
DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = #" & dtVal & "#", acIcon
End If
End If
End Sub
编辑 原因是就像字符串需要用引号 ("I am a string") 一样,日期需要用散列标记 (#01/01/2015#)。如果字段类型是日期,或者如果您希望将值视为日期,那么您将需要## :)