我有20个“数字”字段。如果输入为正,则输入1;如果输入为负,则输入0;如果对此特定记录无效,则输入空白(空)。我正在尝试创建一个报告,该报告将在其自己的行上返回每个字段,说明“负橙色”或“正橙色”,或者将橙色完全排除在报告之外(然后继续进行剩余的19个字段,具体取决于每个输入是什么) )(如果特定字段实际上为空白(空),则两行之间没有空格)。 这是我的报告的“详细信息”部分中一栏所需要的示例:
Negative CBC
Negative Vitamin D
Negative Vitamin E
Negative Vitamin A
Positive Vitamin B-12
有20种可能的物质可能被测试。并非每个记录都对每种物质进行测试。我希望报告仅显示经过测试的内容,最终报告中不留空白。
答案 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;