Ms access DoCmd.OpenReport的问题
我在窗体上有一个打开报表的按钮。只要有数据,报表就会按应有的方式打开。但是,当报表中没有数据时,我会收到一个错误,调试器会将我带到此行Ms access DoCmd.OpenReport的问题,ms-access,vba,Ms Access,Vba,我在窗体上有一个打开报表的按钮。只要有数据,报表就会按应有的方式打开。但是,当报表中没有数据时,我会收到一个错误,调试器会将我带到此行 DoCmd.OpenReport“FilesToBeReturnedReport”、acViewReport、“、”、acNormal 以下是完整的代码: `With Me If ((IsNull(.StartDate) Or .EndDate = "")) Then Beep MsgBox "You must enter
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`
我需要在明天之前完成这项工作,所以任何帮助都将不胜感激。谢谢我对access中的vba不是很有经验,但你为什么不试试推杆呢 DoCmd.OpenReport“FilesToBeReturnedReport”,acViewReport,“,”,acNormal 之后
End with
Access报告有一个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
我刚试过你的建议,但没用。我所做的是使用“On Load”事件过程来运行记录计数并关闭if=0。并将消息返回给用户。尽管如此,还是要感谢你的努力。很抱歉,很高兴你能在@kefas修复它。除了错误号应该是2501之外,它基本上是正确的。