取消打印不包含任何记录的报表

默认情况下,您可以打印不包含记录的报表。 若要解决此问题,可以使用宏或 Microsoft Visual Basic for Applications (VBA) 代码来检测报告中缺少记录,然后取消打印操作。 本文中的步骤介绍如何使用这两种技术。

你要做什么?

您可能想要在报表不包含任何记录时取消打印报表。 例如,如果您开始销售新产品,则您可能有一段时间尚未注册任何销售。 因此,应考虑以下可能性:某些报表可能不包含任何详细记录,聚合函数(如 Count 函数)可能没有任何计数。 若要正常处理此类事件,可以创建一个宏来取消打印作业。 还可以添加几行精心放置的 VBA 代码来执行相同的工作。 VBA 是一种 Access 语言。

将宏或 VBA 代码添加到报表的 On No Data 事件过程。 Access 运行没有记录的报表时,都会触发"打开无数据"事件。 本文中所述的宏和 VBA 代码显示相应的消息,当报表不包含任何数据时,取消报表的打印。 将宏或 VBA 代码添加到"无数据"事件过程时,只要打开不包含任何记录的报表,就会运行宏或 VBA 代码。 单击" 确定" 关闭任一警报消息时,宏也会关闭空白报表。 将宏或 VBA 代码添加到报表时,尝试在"报表"视图或"布局"视图中显示空白报表时不会打开它,但可以在"设计"视图中打开该报表。

使用宏取消打印

尝试打印空白报表时,本部分所述的宏会显示一条警报消息。 单击" 确定 "关闭消息框时,宏会自动取消打印操作。 如果未包含警报消息,则当您尝试打印报表时,它将显示为未发生任何情况 ,这会使报表的用户感到困惑。

创建宏

  1. 在导航窗格中,右键单击要更改的报表,然后单击"设计视图"。

  2. 在“设计”选项卡上的“显示/隐藏”组中,单击“属性表”。

    - 或 -

    根据区域和语言设置,双击报表左上角或右下角的框。

  3. 单击" 事件" 选项卡,在" 打开无数据" 属性框中,单击 “生成器”按钮

    将显示 "选择生成器 "对话框。

  4. 单击"宏生成器",然后单击"确定"。

    宏设计器启动并显示空白宏。

  5. 在宏设计窗口上的宏操作下拉列表中,从列表中选择 MessageBox。

  6. "消息 "框中,键入警报消息的文本。

    例如,可以输入以下内容: 没有要报告的记录。

  7. (可选)将Beep框中的参数值从"是"更改为"否",在"类型"列表中,选择要显示在警报消息中的图标类型。

  8. "标题 "框中,键入通知消息的标题。

    例如,可以输入"无记录"。

  9. 选择MessageBox操作下面的宏操作下拉列表,然后选择CancelEvent。

  10. 在"设计"选项卡上的"关闭"组中,单击"保存"。

  11. “设计”选项卡上的“关闭”组中,单击“关闭”。 如果显示一条警报消息,询问是否要保存对宏和报表属性的更改,请单击"是",关闭报表,保存更改(如果系统提示)并继续执行下一步测试。

测试宏

  • 在导航窗格中,右键单击包含宏的报表,然后单击"打印"。 Access 会显示一条警报消息,具体取决于你选择的选项。

    单击" 确定 "关闭消息时 ,CancelEvent 操作将停止打印操作。 由于未指定任何其他事件 (例如打开报表来查看) ,因此报表将关闭。

返回页首

使用 VBA 代码取消打印

此处所述的 VBA 代码的工作方式与上一部分中所述的宏非常类似 , 它在打开空白报表时显示一条警报消息,然后在关闭警报消息时取消打印操作。

添加 VBA 代码

  1. 在导航窗格中,右键单击要更改的报表,然后单击"设计视图"。

    注意: 若要完成此过程,请使用不包含任何记录的报表。

  2. 在“设计”选项卡上的“显示/隐藏”组中,单击“属性表”。

    - 或 -

    根据区域和语言设置,双击报表左上角或右下角的框。

  3. 单击" 事件" 选项卡,在" 打开无数据" 属性框中,单击 “生成器”按钮

    将显示 "选择生成器 "对话框。

  4. 单击"代码生成器",然后单击"确定"。

    "Visual Basic编辑器"将启动并显示一个空白事件过程。

  5. 在编辑器中键入Visual Basic代码,以便Report_NoData过程如下所示:

    Private Sub Report_NoData (Cancel As Integer)
    MsgBox "There are no records to report", vbExclamation, "No Records"
    Cancel = True
    End Sub
  6. 完成后,单击"文件",然后单击"保存"。

  7. 单击"文件",然后单击"关闭"并返回到 Microsoft Access。

  8. 关闭打开的报表,然后单击 "是 "以确认保存。

  9. 在导航窗格中,右键单击刚刚更改的报表,然后单击"打印"。 Access 会显示一条警报消息,具体取决于你选择的选项。

操作Report_NoData使用 MsgBox函数显示"没有要报告消息的记录"和"确定"按钮。 单击" 确定"时,过程中"Cancel=True"行指示 Access 取消报表。 Cancel 是自动传递给事件过程的参数,事件过程完成后,Access 始终会选中它。

返回页首

需要更多帮助?

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×