查询表达式中与函数一起使用的参数数量错误

时间:2015-05-07 13:53:35

标签: sql ms-access filter ms-access-2010

我在Access 2010中有一个由其他人编写的SQL,当我尝试运行它时会出现错误的参数数量错误。它应该从搜索页面过滤报告。

    SELECT Activity.[ProjNo], Activity.[Code], Activity.[Type], Activity.[ProjNoStatus], 
           Activity.[Preliminary], Activity.[Planner], Activity.[Designer],  
           Activity.[Officer], Activity.[Manager], Activity.[Staff], Activity.[Analyst], 
           Activity.[Manager], Activity.[DeptHead], Activity.[ContractNumber], 
           Activity.[InfoOfficer],Activity.[ProjNoDesigner]
    FROM Activity
    WHERE Activity.ProjNo=Index.ProjNo AND (((IIf([Forms]![SearchForm]![txtCode]="",
          "*",[Activity].[Code]=[Forms]![SearchForm]![txtCode]))<>False) 
          AND ((IIf([Forms]![SearchForm]![txtType]="","*",[Activity].[ Type]="", 
          "*", [Activity].[Type]=[Forms]![SearchForm]![txtType]))<>False) AND 
          ((IIf([Forms]![SearchForm]![txtProjNoStatus]="","*",
          [Activity].[ProjNoStatus]<=[Forms]![SearchForm]![txtProjNoStatus]))<>False));

我对SQL不是很有经验,就像我说的那样,我没有写这段代码(那个人早就退休了)所以任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

该查询仅定义一个数据源(表或查询):

FROM Activity

但是WHERE子句似乎引用另一个名为 Index 的数据源:

WHERE Activity.ProjNo=Index.ProjNo

由于 Index 未包含在FROM子句中,因此当您尝试在WHERE子句中使用它时,Access将会对象。

但是,我不确定这是Access抱怨的第一个错误的原因。向我们展示该错误消息的全文可能会有所帮助。