Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access DoCmd.OpenReport的问题_Ms Access_Vba - Fatal编程技术网

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之外,它基本上是正确的。