2015-10-29 5 views
0

Current Database Layoutкаскадных Combo Box Ограничить Параметры с Multiple Присоединяется - SQL

Смотрите картинку выше.

Я действительно борется с тем, как сделать эту работу. У меня есть база данных, которая пытается обрабатывать вопросы и ответы. У каждого опроса есть вопросы. У каждого вопроса есть группа ответов, которая подходит для этого вопроса, будь то Да/Нет, или Истина/Ложь или что-то еще. Я пытаюсь собрать ответы на эти вопросы. Где я нахожусь на стене, пытается ограничить ответы в ответе tblSurveyQuestionResponse только теми ответами, которые находятся в группе ответов для этого конкретного вопроса. Я просто не могу понять, как это сделать, независимо от того, есть ли у меня неправильные соединения или просто не правильно написано предложение SQL where. Так, например, если возможные ответы на вопрос были только «Да» или «Нет», в отличие от вытягивания всего списка ответов, в поле со списком будут отображаться только «Да» и «Нет». Затем я планирую использовать VBA для получения ответа на запрос комбо-поля при каждом изменении вопроса, чтобы отображались только возможные ответы. Может ли кто-нибудь помочь мне выяснить, как это сделать? Или мой дизайн БД испорчен? Пожалуйста помоги. Если требуется дополнительная информация, сообщите мне. Спасибо.

+0

Не уверен, что такое настоящий вопрос. Вы еще пробовали код? Вы можете использовать событие «Текущее», чтобы изменить поле со списком ответов «RowSource». – Andre

+0

Итак, мой вопрос в том, что SQL приведет к ограничению опций в поле со списком только теми ответами, которые принадлежат к группе ответов. Я начал со следующим: ВЫБОР tblAnswerGroupAnswer.AnswerGroupAnswerID, tblAnswerGroupAnswer.AnswerID ОТ tblAnswerGroupAnswer ORDER BY tblAnswerGroupAnswer.Order; Я знаю, что должно быть предложение WHERE. Я думаю, что я ищу, это WHERE tblSurveyQuestionResponse.SurveyQuestionID = tblSurveyQuestion.SurveyQuestionID и где tblAnswerGroupAnswer.AnswerGroupID = tblSurveyQuestion.AnswerGroupID – rawil2

+1

Пожалуйста, не оставляйте комментарии в комментариях, редактируйте свой вопрос и добавьте его туда (и отформатируйте как код). – Andre

ответ

0

Вы можете это сделать!

Создайте новый запрос, начиная с tblQuestion. Затем следуйте своим JOINs, добавив все таблицы, пока не достигнете tblAnswer.

Добавить критерии: tblQuestion.QuestionID = Forms![YourQuestionForm]!QuestionID

И добавить поле (ы) с tblAnswer, что вы хотите, чтобы в вашем ComboBox.

Сохраните запрос и используйте его как RowSource для combobox.

И в Form_Current, do Me.cboAnswer.Requery, поэтому он всегда будет использовать текущий QuestionID в запросе combobox.

+0

Большое вам спасибо. Это гораздо более простое решение, чем то, о чем я думал. Я закончил некоторые массовые предложения WHERE. Этот подход, похоже, работает! Еще раз спасибо. – rawil2