【发布时间】:2020-08-31 01:37:50
【问题描述】:
我是 ACCESS 和 SQL 的新手。如果我误用了某些参考文献和术语,我深表歉意。我正在尝试使用用户输入来选择表中的一个字段,然后根据用户条件过滤该字段中的数据。
我有一个表Emissions_Units 有很多列,我想制作一个漂亮的表格供用户选择污染物(这是我表中的一列),然后选择适用于该污染物的标准(即桌子)。表中污染物或列包括CO_Emissions、NO2_Emissions、PM_Emissions。
然后,一旦选择了列,我想根据用户最大和最小标准过滤该列。然后让查询显示结果。
我包含了一些我一直在处理的 SQL 代码,这些代码不起作用,但可能会显示我正在尝试做的事情。我也试过SWITCH 而不是IIF。如果这是可能的,那么我还想从该表中与查询中的行匹配的其他列中获取信息。例如,我想从与满足用户输入结果的行关联的名称和位置列中提取信息。
PARAMETERS [Enter Pollutant to Review (CO, NO2, PM):] Text, [Enter Maximum Emissions (0.00 g/s):] Number, [Enter Minimum Emissions (0.00 g/s):] Number;
SELECT
IIF([Enter Pollutant to Review (CO, NO2, PM):] = "CO", Emissions_Units.CO_Emissions AS CalcValues,
IIF([Enter Pollutant to Review (CO, NO2, PM):] = "NO2", Emissions_Units.NO2_Emissions AS CalcValues,
IIF([Enter Pollutant to Review (CO, NO2, PM):] = "PM", Emissions_Units.PM_Emissions AS CalcValues, 'Retry' )
)
)
FROM Emissions_Units
WHERE CalcValues >= [Enter Minimum Emissions (0.00 g/s)]
AND CalcValues <= [Enter Maximum Emissions (0.00 g/s)];
【问题讨论】:
-
规范化表结构,你的生活会简单得多。 EmissionData 有一个字段,EmissionType 有另一个字段。对 EmissionType 字段应用过滤器。编辑问题以将示例数据显示为文本表。
-
感谢 June7。我理解,但我认为更改表/数据集太难了,所以我希望有一个替代方案。希望您能提供帮助并提出其他选择。
标签: sql ms-access user-controls parameter-passing iif