用于限制具有多个联接的选项的级联组合框-SQL

用于限制具有多个联接的选项的级联组合框-SQL,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,见上图 我真的在为如何实现这一目标而挣扎。我有一个数据库试图处理问题和回答。每个调查都有问题。每个问题都有一个适合该问题的答案组,无论是“是/否”,还是“对/错”,或其他任何问题。我正试图收集对这些问题的回答。我遇到的困难是试图将tblSurveyQuestionResponse中的答案限制为该特定问题答案组中的答案。我似乎无法理解如何做到这一点,无论我是否有错误的连接,或者只是没有正确地编写SQLWHERE子句。因此,例如,如果一个问题的可能答案只有“是”或“否”,而不是拉起整个答案列表,组合

见上图

我真的在为如何实现这一目标而挣扎。我有一个数据库试图处理问题和回答。每个调查都有问题。每个问题都有一个适合该问题的答案组,无论是“是/否”,还是“对/错”,或其他任何问题。我正试图收集对这些问题的回答。我遇到的困难是试图将tblSurveyQuestionResponse中的答案限制为该特定问题答案组中的答案。我似乎无法理解如何做到这一点,无论我是否有错误的连接,或者只是没有正确地编写SQLWHERE子句。因此,例如,如果一个问题的可能答案只有“是”或“否”,而不是拉起整个答案列表,组合框将只显示“是”和“否”。然后,我计划使用VBA在问题更改时重新查询答案组合框,以便只显示可能的答案。有人能帮我弄清楚怎么做吗?还是我的数据库设计有缺陷?请帮忙。如果需要更多信息,请告诉我。谢谢。

你可以做到

创建一个新查询,从
tblQuestion
开始。然后按照连接操作,添加所有表,直到到达
tblAnswer

添加条件:
tblQuestion.QuestionID=Forms![你的问题表]!问题ID

并从
tblAnswer
中添加要包含在组合框中的字段

保存查询,并将其用作组合框的行源


表单\u Current
中,执行
Me.cboAnswer.Requery
,因此它将始终在组合框查询中使用当前问题ID。

不确定实际问题是什么。你试过代码了吗?您可以使用
Current
事件更改答案组合框的
RowSource
。因此,我的问题是,什么样的SQL会导致组合框中的选项仅限于属于答案组的答案。我从以下内容开始:按tblAnswerGroupAnswer.ORDER从tblAnswerGroupAnswer顺序选择tblAnswerGroupAnswer.AnswerID、tblAnswerGroupAnswer.AnswerID;我知道应该有WHERE条款。我想我要找的是tblSurveyQuestionResponse.SurveyQuestionID=tblSurveyQuestion.SurveyQuestionID和tblAnswerGroupAnswer.AnswerGroupID=tblSurveyQuestion.AnswerGroupID请不要在评论中发布代码,编辑您的问题并将其添加到那里(并以代码的形式)。非常感谢。这是一个比我想象的简单得多的解决方案。我最终得到了一些大规模的WHERE条款。这种方法似乎奏效了!再次感谢你。