在Access表单中运行参数查询

时间:2015-09-18 16:01:55

标签: sql forms ms-access parameters

我已经创建了一些表单,允许用户通过使用ComboBox来决定查询的约束,即学生的状态与另一个州的出勤率。当我向查询添加多个约束时出现问题。我有2个类别的间歇性成功,但它似乎只与1类别一致。我需要三个类别,但我没有成功让所有三个类别在同一个表单上工作。但是,如果独立运行(从查询中删除一些约束),所有类别都可以自行工作。所以,我知道我的表单上的ComboBox可以正常工作。看来问题出在查询的SQL上。

SELECT 
Students_All_Classes.LastName, Students_All_Classes.FirstName, 
    Students_All_Classes.[Class Name], Students_All_Classes.State, 
    Students_All_Classes.ClassDate
FROM Students_All_Classes
WHERE 
    (((Students_All_Classes.[Class Name])=[Forms]![User Input]![ComboClass])     AND 
    ((Students_All_Classes.State)=[Forms]![User Input]![ComboState]) AND 
    ((Students_All_Classes.ClassDate)=[Forms]![User Input]![ComboDate]));

我认为问题在于where语句中的AND运算符。如果我将其更改为OR,我可以使用所有三个约束。但是,我需要累积的约束,所以它是catagory x和类别y和类别Z.任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试这个,因为combodata是一个字符串:

SELECT 
Students_All_Classes.LastName, Students_All_Classes.FirstName, 
    Students_All_Classes.[Class Name], Students_All_Classes.State, 
    Students_All_Classes.ClassDate
FROM Students_All_Classes
WHERE 
    (((Students_All_Classes.[Class Name])=[Forms]![User Input]![ComboClass])     
    AND 
    ((Students_All_Classes.State)=[Forms]![User Input]![ComboState]) 
    AND 
    ((Students_All_Classes.ClassDate)=Format([Forms]![User Input]![ComboDate], "\#yyyy\/mm\/dd\#")));