按日期过滤报告

时间:2015-03-01 16:22:01

标签: access-vba ms-access-2010

我正在尝试根据基于生成打开报告事件的表单上的控件的日期打开基于查询构建的报表。查看代码很清楚,报告上的日期(Effective_date)由于某种原因无法识别。这可能是日期格式问题吗?

Private Sub Comando145_Click()

DoCmd.OpenReport "rpt_ValueAddAndWastes01", acViewPreview, , "[Effective_date] = " & LastUpdateDate, acIcon

End Sub

1 个答案:

答案 0 :(得分:1)

看看这是否有所作为:

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

修改 原因是,正如字符串需要在引号中("我是字符串")日期需要在哈希标记中(#01/01/2015#)。如果字段类型是Date,或者您希望将值视为日期,那么您将需要##:)