我在打开报告的表单上有一个按钮。只要有数据,报告就会打开,但是当报告中没有数据时,我收到错误并且调试器将我带到此行
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`
我需要在明天之前完成这项工作,因此我们将非常感谢您的帮助。感谢
答案 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