使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

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

您要做什么?

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

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

使用宏取消打印

当您尝试打印空白报表时,本部分所述的宏会显示一条警报消息。 单击“ 确定” 关闭消息框时,宏会自动取消打印操作。 如果未包含警报消息,则当您尝试打印报表时,它看起来好像没有发生任何反应,这可能会使报表的用户感到困惑。

创建宏

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

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

    -或者-

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

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

    此时将显示 “选择生成器 ”对话框。

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

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

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

  6. 在“ 消息 ”框中,键入警报消息的文本。

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

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

  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 始终会检查该参数。

返回页首

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×