Access数据库查询输入参数值不起作用

时间:2016-12-13 22:42:27

标签: sql access

我在访问数据库中有following查询where语句:

WHERE (((IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1))<[EnterValue]) AND ((tblEquipment.Retired)=False))

目的是在提示----((IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1))----时询问用户是否有值以及公式[EnterValue]何时小于用户输入。如果我使用52之类的数而不是[EnterValue]我得到正确的结果但是当我保持[EnterValue]时我得到提示,当我输入52时,我得到的结果不小于52。实际得到所有结果,好像标准不存在。但是当我在提示而不是52时输入10时,我得到了正确的结果。

公式在我的结果中

IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1) AS Wks

所以它显示结果。

1 个答案:

答案 0 :(得分:0)

您需要将用户输入转换为数字值。使用Val()功能:

IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1))<Val([EnterValue])

您还可以指定参数的数据类型。 This article向您展示了如何:

  

指定查询中参数的数据类型:

     
      
  1. 在“设计”视图中打开查询,在“设计”选项卡上的“显示/隐藏”组中,单击“参数”。

  2.   
  3. 在“查询参数”框的“参数”列中,输入要为其指定数据类型的每个参数的提示。使   确保每个参数都与您在中使用的提示相匹配   查询设计网格的标准行。

  4.   
  5. 在“数据类型”列中,选择每个参数的数据类型。

  6.