访问:取消报告生成导致错误2501

时间:2009-09-29 12:26:37

标签: ms-access report

无法相信我在这一次上失去了那么多时间。

我有一个订单,当我点击“报告”按钮时,会出现一个对话框 弹出窗口,其中包含可供选择的不同报告的列表。双击选择 并开始通讯报道。

在其中一个报告中,有一个未绑定的文本框我需要用户输入数据。 此字段的ControlSource设置为其Name属性。 报告启动时,会出现一个输入框,其中包含“确定”和“取消”按钮。每当我输入一些数据时,一切都很好。

但是当我点击“取消”时,应用程序崩溃了,我收到错误消息: “运行时错误2501:Action OpenReport已被取消”(由德语翻译)。

通过以下代码调用报告:

DoCmd.OpenReport vBerichtName, nAnsicht
End If   

On Error Resume Next
  DoCmd.Close acForm, "F_BerichtDrucken"
On Error GoTo 0

1)为什么错误处理没有启动?
2)我用谷歌搜索并找到了许多奇怪的解决方案,就像官方微软说你需要安装/更新打印机驱动程序(来吧......)。没人帮忙。

我正在为朋友这样做,我通常在linux / php,java等工作。如果解决方案有点明显,或者类似的话,我很抱歉。

4 个答案:

答案 0 :(得分:2)

与Phillipe的回答不一样。你没有给我们整个程序,但你需要做这样的事情......

Sub MyButton_Click
On Error Goto myError

DoCmd.OpenReport vBerichtName, nAnsicht


MyExit:
   Exit Sub

MyError:
   If Err.number = 2501 then goto myExit
   msgbox err.description
   goto myExit

End Sub

这是一个常见的错误,但您可以像任何其他错误一样捕获它,如果是2501则忽略它 塞特

答案 1 :(得分:1)

错误可能来自DoCmd.OpenReport行。这就是错误处理程序不起作用的原因。

我猜你所要求的价值在某种程度上是强制性的。您是否尝试将错误管理行放在docmd.openReport之前?

答案 2 :(得分:1)

检查您的默认打印机。我得到了同样的错误&我的所有代码都正常工作。使用计算机的人将默认打印机设置为标签打印机。 Access以某种方式正在检查打印机&知道它没有正确的尺寸设置来打印,所以它停止了报告的显示。

我将默认打印机更改为另一台全尺寸打印机,效果很好。

我希望这对某人有所帮助,因为我在第一次出现时感到茫然。

答案 3 :(得分:0)

好的,它现在有效。

根据你的建议,我把代码放在这样:

    On Error GoTo CancelError 
    If Not IsNull(vFilter) Then 
       DoCmd.OpenReport vBerichtName, nAnsicht, , vFilter 
    Else 
       DoCmd.OpenReport vBerichtName, nAnsicht 
    End If
CancelError:
  DoCmd.Close acReport, vBerichtName
  DoCmd.Close acForm, "F_BerichtDrucken"
  Echo True  ' this did the trick 
  Exit Function 

只要我将Echo True放入错误处理中,就可以了 现在顺利,回到以前的形式并允许 继续工作 - 看起来像“Echo”对屏幕有一种复习......?