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

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

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

您要做什么?

使用宏来取消打印

使用 VBA 代码取消打印

当报表不包含任何记录时,您可能希望取消打印该报表。例如,如果您刚开始销售一种新产品,可能有一段时间仍需要登记所有销售情况。因此,您应该考虑以下可能性:某些报表有可能不包含任何明细记录,聚合函数(如 Count 函数)可能没有要进行计数的信息。要适当处理此类情况,您可以创建一个取消打印作业的宏。也可以仔细地添加几行 VBA 代码来完成同一任务。VBA 是 Microsoft Office Access 2007 使用的编程语言。

报表上无 Da选项卡事件过程中添加宏或 VBA 代码。Office Access 2007触发无数据事件时运行的任何记录的报表。宏和 VBA 代码本文中所述显示相应的消息,并取消打印的报表,当该报表不包含任何数据。无数据事件过程中添加宏或 VBA 代码的宏或 VBA 代码只要运行打开不包含任何记录的报表。单击确定以关闭警告消息,宏也会关闭空报表。当您尝试在报表视图或布局视图中显示时向报表中添加宏或 VBA 代码,无法打开一个空报表 — — 但您可以在设计视图中打开该报表。

使用宏取消打印

当您尝试打印空报表时,本节中介绍的宏将显示一条警告消息。单击“确定”关闭消息框时,宏也会自动取消打印操作。如果没有包括警告消息,则当您尝试打印报表时,就好像没有发生任何事情一样,这种情况很可能把报表的用户弄糊涂。 

创建宏

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

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

    - 或 -

    双击报表左上角或右上角的框,具体取决于您的区域和语言设置。

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

    将出现“选择生成器”对话框。

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

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

  5. 在宏的第一行中,单击“操作”列中的字段,然后从列表中选择“MsgBox”

  6. 在宏设计器下半部分的“操作参数”下,在“消息”框中键入警告消息的文本。

    例如,您可以输入以下消息:没有要报告的任何记录。

  7. 或者将“蜂鸣声”框中的参数值从“是”更改为“否”,然后在“类型”列表中,选择要在警告消息中出现的图标类型。

  8. “标题”框中,键入警告消息的标题。

    例如,您可以输入无记录

    您的更改将出现在宏设计器的上半部分,即“MsgBox”操作旁边的“参数”列中。 

  9. 在宏设计器的上半部分,单击“操作”列中的下一个单元格(紧跟在“MsgBox”下的单元格),然后选择“CancelEvent”

    您的宏应该如下所示,尽管您可以在参数中使用不同的文本:

    取消打印操作的示例宏

  10. 设计选项卡的关闭组中,单击另存为,然后使用另存为对话框中为宏名称。

  11. 关闭宏。如果出现警告消息,并且询问您是否要保存对宏和报表属性的更改,请单击“是”,然后继续下面的步骤对其进行测试。

测试宏

  • 在导航窗格中,右键单击包含该宏的报表,然后单击“打印”。根据您选择的选项,应出现一条与下面类似的警告消息:

    报表不包含任何记录时出现的消息框

    单击“确定”关闭消息时,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 Office Access

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

  9. 在导航窗格中,右键单击刚刚更改的报表,然后单击“打印”。您会看到以下消息:

报表不包含任何记录时出现的消息框

Report_NoData 过程使用 MsgBox 函数来显示“没有要报告的任何记录”消息和“确定”按钮。单击“确定”时,该过程中的“Cancel=True”行将指示 Access 取消报表。Cancel 是自动传递到事件过程的参数,当事件过程完成时,Access 会始终检查该参数。

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

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

此信息是否有帮助?

谢谢您的反馈!

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

×