Ms access 如果查询中没有记录,则发送对象命令不发送

Ms access 如果查询中没有记录,则发送对象命令不发送,ms-access,macros,Ms Access,Macros,我想使用宏“send object command”每天通过电子邮件发送一系列查询的记录,但我只希望它在给定查询中有记录时发送给定的电子邮件。如果查询没有输出任何记录,那么我不希望发送该电子邮件。我知道如何通过设置“on no data event”来使用Acces报告来实现这一点,但我更希望我的宏不运行Access报告而只运行查询,因为以reoprt格式输出数据会占用我计算机上的大量资源。请注意,我不知道VBA,所以我想知道我是否可以在没有任何VB编程的情况下实现我的目标。非常感谢您的建议不幸

我想使用宏“send object command”每天通过电子邮件发送一系列查询的记录,但我只希望它在给定查询中有记录时发送给定的电子邮件。如果查询没有输出任何记录,那么我不希望发送该电子邮件。我知道如何通过设置“on no data event”来使用Acces报告来实现这一点,但我更希望我的宏不运行Access报告而只运行查询,因为以reoprt格式输出数据会占用我计算机上的大量资源。请注意,我不知道VBA,所以我想知道我是否可以在没有任何VB编程的情况下实现我的目标。非常感谢您的建议

不幸的是,您需要VBA来完成此任务。是否愿意在宏中放入一些代码?

在宏中,可以使用“条件”列测试DCount()表达式,查看结果是否大于0,然后SendObject将运行

为此,请使用SendObject行打开宏

从“视图”菜单中,选择“条件”。这将在左侧添加一列

在该列中,输入如下内容:

  DCount("*", "MyQuery", "[conditions that are being tested, if necessary]")>0
这是一个DCount(),用于查看查询返回的记录数。如果已经对查询进行了适当的筛选(例如,它引用了一个表单控件作为条件),则可以省略第三个参数(以及它的前导逗号)。如果查询返回0,则条件返回FALSE,并且不会执行SendObject命令

您必须弄清楚如何构造DCount(),但关键是通过测试查询中将显示多少记录,您可以有条件地执行SendObject