【问题标题】:Check if Report is fully formatted检查报告是否完全格式化
【发布时间】:2014-12-03 15:54:19
【问题描述】:

我们在 Access 中有订单数据库,我们在其中收集订单确认并向客户发送订单确认。在订购单中,我单击按钮以在普通视图中打开确认报告。我在打开的报告上有“发送报告”按钮,可以将其以 PDF 格式发送给客户。

所有作品都带有小报告。当报告有 15-20 页或更多页时会出现问题。经过一番调查,我发现在报告加载时用户按下发送按钮并报告根本没有完全格式化并且发送操作失败。

我找不到正确的事件来检查报告是否已完成格式化。这将帮助我根据该状态启用“发送”按钮的真/假。

【问题讨论】:

    标签: ms-access vba ms-access-2010


    【解决方案1】:

    您可以使用报表页脚部分的'OnPrint'事件:“事件发生在报表部分中的数据被格式化为打印之后,但在打印部分之前”

    【讨论】:

    • 很遗憾无法使用它,因为此事件不会在我打开时触发。我不打印报告。我正在尝试在普通视图中打开它以便能够发送它。
    • @litpost 您不会将其打印到打印机,但 msaccess 会将其打印到窗口。检查其在示例报告中的行为将Debug.Print Now 行放在页脚的onprint 事件中。
    • 我按照你的建议做了,但什么也没发生。 OnPrint 事件根本没有触发。但是,如果我在打印预览模式下打开报告,那么它运行良好。但我不能使用 PrintPreview,因为我必须在报告上有按钮才能发送它。
    • 你的意思是你已经打电话给docmd.OpenReport "testreport",acViewNormal 并且事件没有触发?那么它是 2010 年的缺陷,因为 2003 年适用于“acViewNormal”和“acViewPreview”选项。
    • 是的,完全正确。如果是 2010 年的缺陷,也许我可以使用另一种解决方案。错误捕获或 onTimer 事件。报告上的 OnTimer 事件究竟何时开始?我的意思是,在加载之后或加载过程中的某个地方?
    【解决方案2】:

    我终于解决了。

    • 在打开报告的按钮之前打开 docmd.Hourglass(按钮位于订单上)并在退出子上关闭 docmd.Hourglass。

    • 在顶部“发送”按钮的 OnClick 事件中检查了 MousePointer

      如果 Screen.MousePointer = 11 则退出 Sub

    现在用户无法开始发送,直到订单上按钮的所有过程完成。这实际上很奇怪,但它以某种方式解决了这个问题。谢谢大家的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      相关资源
      最近更新 更多