DoCmd.OpenReport的问题

时间:2014-01-30 08:51:10

标签: ms-access access-vba

我在打开报告的表单上有一个按钮。只要有数据,报告就会打开,但是当报告中没有数据时,我收到错误并且调试器将我带到此行 DoCmd.OpenReport "FilesToBeReturnedReport", acViewReport, "", "", acNormal

以下是整个代码:

`With Me
    If ((IsNull(.StartDate) Or .EndDate = "")) Then
        Beep
        MsgBox "You must enter report start period", vbOKOnly, "Required Data!"
    ElseIf (IsNull(.EndDate) Or .EndDate = "") Then
        Beep
        MsgBox "You must enter report end date", vbOKOnly, "Reqired Data"
    ElseIf (.StartDate > .EndDate) Then
        Beep
        MsgBox "The report start date must be earlier than the end date", vbOKOnly, "Required Data"
    Else
        DoCmd.OpenReport "FilesToBeReturnedReport", acViewReport, "", "", acNormal
    End If
End With`

我需要在明天之前完成这项工作,因此我们将非常感谢您的帮助。感谢

2 个答案:

答案 0 :(得分:2)

访问报告有NoData事件。如果没有数据,您可以将要运行的操作放在其中。如果在NoData事件中将“取消”设置为“True”,则不会打开或打印报告。如果将“取消”保留为默认值False,则报告将像现在一样打开。

也就是说,使用DoCmd.OpenReport时还需要捕获此错误:

On Error Goto ReportFail
DoCmd.OpenReport strReport, acViewPreview

ExitHere:
Exit Sub

ReportFail:
If Err=2501 Then
  'OpenReport was canceled
  Err.Clear
  Resume ExitHere
Else
  MsgBox Err.Number & ": " & Err.Description
End If
End Sub

答案 1 :(得分:-1)

我对vba的访问并不是非常有经验,但为什么不尝试推杆

DoCmd.OpenReport“FilesToBeReturnedReport”,acViewReport,“”,“”,acNormal

之后

End with