【问题标题】:SQL Select query isn't working with my Access FormSQL Select 查询不适用于我的访问表单
【发布时间】:2016-04-16 22:31:14
【问题描述】:

所以我正在做一个项目,我们试图让我们的用户打开表单,选择(通过组合框)一位讲师,然后将多年来拥有该讲师的所有学生返回到一个表格中。

如果没有 WHERE 子句,代码将运行,返回所有有过该讲师的学生。但是当我在 WHERE 子句中使用 [Forms]![STUDENT FORM]![INSTRUCTOR] 时,我们突然没有得到任何结果。谁能解释这是为什么?它使用不同的组合框以相同的形式工作,但我们不需要使用任何连接,所以我想知道这是否是问题所在?

这是 SQL 代码 - 我们的表单名为 STUDENT FORM,组合框名为 INSTRUCTOR:


SELECT STUDENT.STU_LNAME, STUDENT.STU_FNAME, STUDENT.[STU_ INT],
STUDENT.STU_NICK, STUDENT.STU_YEAR, STUDENT.STU_PHONE, STUDENT.STU_EMAIL,
INSTRUCTOR.INSTRUCTOR_LNAME FROM 
(INSTRUCTOR INNER JOIN CLASS ON 
INSTRUCTOR.[INSTRUCTOR_ID] = CLASS.[INSTRUCTOR_ID]) INNER JOIN 
(STUDENT INNER JOIN ENROLL ON STUDENT.[STU_NUM] = ENROLL.[STU_NUM]) 
ON CLASS.[CLASS_ID] = ENROLL.[CLASS_ID]
WHERE (((INSTRUCTOR.INSTRUCTOR_LNAME)=[Forms]![STUDENT FORM]![INSTRUCTOR]));

如果您需要更多信息,请告诉我!

【问题讨论】:

  • @HansUp ComboBox 中有三个值,都是名字。所以我们试图让用户选择一个姓氏,然后让查询返回所有与该教师一起上课的学生。
  • 我不太确定您希望我如何使用它 - 我只是运行它,但它不起作用。你的意思是用那个替换select语句吗?编辑 - 我也只替换了 SQL 语句,但它也没有工作,遗憾的是,只是给了我一个空白表。
  • 不,没有错误。它运行代码,但不提供任何信息,这也是我如此困惑的部分原因——如果出现错误,我可以缩小范围。相反,它只返回了一个表,其中有一列名为 [Forms]![STUDENT FORM]![INSTRUCTOR]
  • 抱歉回复晚了!我按照你说的做了,答案只是说 NULL,虽然当我选择了一位讲师时,它给了我他们的讲师 ID。我觉得这有点相关。

标签: sql ms-access jet


【解决方案1】:

我敢打赌,您的 INSTRUCTOR 组合框有两列,INSTRUCTOR_ID绑定列,宽度为 0(因此只有 INSTRUCTOR_LNAME 可见)。

所以你需要过滤的值为INSTRUCTOR_ID,你需要将WHERE子句改为:

WHERE (((INSTRUCTOR.INSTRUCTOR_ID)=[Forms]![STUDENT FORM]![INSTRUCTOR]));

【讨论】:

  • 这就是答案!谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 2015-09-10
  • 2019-09-18
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多