访问报告以保留没有空格的“无数据”字段

时间:2018-10-22 21:35:31

标签: ms-access access-vba ms-access-2016

我有20个“数字”字段。如果输入为正,则输入1;如果输入为负,则输入0;如果对此特定记录无效,则输入空白(空)。我正在尝试创建一个报告,该报告将在其自己的行上返回每个字段,说明“负橙色”或“正橙色”,或者将橙色完全排除在报告之外(然后继续进行剩余的19个字段,具体取决于每个输入是什么) )(如果特定字段实际上为空白(空),则两行之间没有空格)。 这是我的报告的“详细信息”部分中一栏所需要的示例:

Negative        CBC  
Negative        Vitamin D  
Negative        Vitamin E  
Negative        Vitamin A  
Positive        Vitamin B-12  

有20种可能的物质可能被测试。并非每个记录都对每种物质进行测试。我希望报告仅显示经过测试的内容,最终报告中不留空白。

1 个答案:

答案 0 :(得分:1)

您没有提供原始数据和实际名称的示例,因此请适当替换。

SELECT ID, Field1 AS Data, "Test1" AS TestName FROM tablename
UNION SELECT ID, Field2, "Test2" FROM tablename
. . .
UNION SELECT ID, Field20, "Test20" FROM tablename;

包括任意多个字段。

构造字段Data可以是每个SELECT行中的计算,以将数字转换为文本。由于您似乎没有使用“是/否”字段,所以:

IIf([Field1]=0, "Negative", IIf([Field1]=1, "Positive", Null)) + " Orange"

或在使用UNION查询作为RecordSource的报表文本框中:

IIf([Data]=0, "Negative", IIf([Data]=1, "Positive", Null)) & " Orange"

使用UNION查询作为报告的RecordSource,并应用过滤器以删除空记录。

SELECT * FROM UnionQuery WHERE NOT Data IS NULL;