Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何停止对查询中未提供的字段的报告提示?_Vba_Ms Access - Fatal编程技术网

Vba 如何停止对查询中未提供的字段的报告提示?

Vba 如何停止对查询中未提供的字段的报告提示?,vba,ms-access,Vba,Ms Access,我有一个可供多种用途的报告,但有时查询不包括报告中的所有字段。发生这种情况时,报告会在弹出窗口中询问缺少的字段值。我想隐藏这些窗口,并在默认情况下设置“”或什么都不设置 我该怎么做呢?我建议重新构造报告,以考虑多个记录源,而不是抑制您当前看到的错误。有几种方法可以做到这一点 很难提供太多的细节而不知道更多关于你的报告,但是你可以考虑以下内容: 1) 使用未绑定的报告,并根据查询的记录集根据需要动态填充字段。您可以根据用作数据源的查询更改填充哪些字段,其他字段将保留为空白和/或可以隐藏。 但是,如

我有一个可供多种用途的报告,但有时查询不包括报告中的所有字段。发生这种情况时,报告会在弹出窗口中询问缺少的字段值。我想隐藏这些窗口,并在默认情况下设置“”或什么都不设置


我该怎么做呢?

我建议重新构造报告,以考虑多个记录源,而不是抑制您当前看到的错误。有几种方法可以做到这一点

很难提供太多的细节而不知道更多关于你的报告,但是你可以考虑以下内容:

1) 使用未绑定的报告,并根据查询的记录集根据需要动态填充字段。您可以根据用作数据源的查询更改填充哪些字段,其他字段将保留为空白和/或可以隐藏。 但是,如果需要将此数据库分发给其他用户或将数据库编译为可执行版本,则这可能会导致问题

2) 创建一个VBA例程,用于动态创建或修改报表对象。在这种情况下,您将基于多个报告配置文件(无需重新创建现有报告)动态创建新的报告对象(以及其中的控件)。您可以指定控件位置、定义等,并且只能根据需要进行更改。根据您的报告,通过使用所有字段从头开始创建报告,然后简单地删除给定报告中未使用的字段所需的步骤,这可能相当容易

3) 继续使用绑定到一个查询的报表,但根据需要修改查询定义,以便通过在VBA中动态生成SQL字符串来根据需要删除字段值。因此,查询将始终包含所有报告字段,但在某些情况下会返回真实数据,而在其他情况下会返回伪结果,即“”。您还可以更改哪些字段具有GROUP BY或WHERE子句


我希望这有帮助-祝你好运

报表不是线性的,它每行有2行,它们以一种特殊的方式放置,以使大小保持最小。我无法在vba中自动生成对象,原因有两个:对象必须在视觉中,因为我不想通过手动设置x和y并刷新以查看其位置是否正确来维护它们。2因为我甚至不知道显示了哪些字段,所以我应该解析查询,这是非常困难的。如果我不能抑制弹出窗口,我会做的最后一件事就是制作虚拟的东西。但这很困难,因为接口有20个不同的选项可供选择,我需要检查应该为哪个组合添加虚拟字段,而不应该为哪个组合添加虚拟字段。。抑制通知是一种更简单、更实用的方法。如果动态生成querydef SQL,您只需对20个选项中的每个选项说,如果需要,显示字段,否则显示“”。有没有类似的报告“组”彼此相似?我不知道怎么做你说的。。。我只有一个用于显示所有查询的报告。。