【问题标题】:Running a parameter query within an Access form在 Access 表单中运行参数查询
【发布时间】:2015-09-18 16:01:54
【问题描述】:

我创建了表单,允许用户指定查询的约束条件,即他们所在州的学生出勤率与使用组合框的另一个州的出勤率。当我向查询添加多个约束时,就会出现问题。我在 2 个类别上取得了间歇性的成功,但似乎只与 1 个类别一致。我需要三个类别,但我没有成功让所有三个类别都在同一个表格上工作。但是,如果独立运行,所有类别都可以自行工作(从查询中删除一些约束)。所以,我知道我表单上的 ComboBoxes 可以正常工作。问题似乎出在查询的 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,我可以使用所有三个约束。但是,我需要限制是累积的,所以它是 x 类和 y 类和 Z 类。任何帮助将不胜感激!

谢谢!

【问题讨论】:

  • 这是您在 VBA 中构建的 SQL 还是从查询的 SQL 视图构建的?它可能只需要带有日期的组合框周围的#s。如果您删除日期条件,它是否可以正常工作?
  • 查询将执行并给出带有 1 个有时 2 个约束的结果。如果我尝试有 3 个三个约束(就像我在上面的 SQL 中写出的那样),则查询不会执行。没有错误消息,但没有给出结果 - 即使我知道选择的项目应该返回结果。
  • 这是 SQL 视图。问题孩子似乎是 Date 变量。我将如何用#重写 SQL?
  • 您只需在组合框前后使用# 作为分隔符,并带有日期值-#[Forms]![User Input]![ComboDate]#。它告诉 Access 将从组合框返回的文本值视为日期。
  • 你确定有记录 确实实际上满足 3 个约束吗?

标签: sql forms ms-access parameters


【解决方案1】:

试试这个,因为组合数据是一个字符串:

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\#")));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-18
    • 2014-06-02
    • 2021-12-28
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    相关资源
    最近更新 更多