如何解决访问查询:使用用户输入来选择要在SQL中查询的列
我是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,PM):] = "CO",Emissions_Units.CO_Emissions AS CalcValues,IIF([Enter Pollutant to Review (CO,PM):] = "NO2",Emissions_Units.NO2_Emissions AS CalcValues,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)];
解决方法
此查询有效:
PARAMETERS [Enter Pollutant to Review (CO,NO2,PM):] Text,[Enter Minimum Emissions in gps] Number,[Enter Maximum Emissions in gps] Number;
SELECT *,Switch([Enter Pollutant to Review (CO,PM):] = "CO",Emissions_Units.CO_Emissions,[Enter Pollutant to Review (CO,PM):] = "NO2",Emissions_Units.NO2_Emissions,PM):] = "PM",Emissions_Units.PM_Emissions) AS CalcValues
FROM Emissions_Units
WHERE Switch([Enter Pollutant to Review (CO,Emissions_Units.PM_Emissions)
BETWEEN [Enter Minimum Emissions in gps] AND [Enter Maximum Emissions in gps];
PARAMETERS子句不喜欢0.00,所以我改写了提示。但是,不是在查询中弹出提示,而是在表单上引用控件供用户输入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。