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

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

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

您要做什么?

使用宏取消打印

使用 VBA 代码取消打印

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

将宏或 VBA 代码添加到报表的"无 Data事件" 过程。 每当运行没有记录的报表时, Access 都会触发 "无数据" 事件。 本文中所述的宏和 VBA 代码将显示相应的消息, 并在报表中不包含任何数据时取消打印报表。 将宏或 vba 代码添加到 "无数据" 事件过程时, 无论何时打开不包含任何记录的报表, 宏或 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函数显示没有记录可报告消息和"确定"按钮。 单击"确定" 后, 过程中的 "取消 = True" 行将指示 Access 取消报表。 Cancel是一个自动传递给事件过程的参数, 并且在事件过程完成时始终由 Access 检查。

返回页首

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

此信息是否有帮助?

谢谢您的反馈!

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

×