Помощь с бд Access
Создаю в базе данных Access базу прохождения тестов и столкнулся с простой задачей, которая в Access стала для меня не такой простой.
Подскажите пожалуйста как сравнить результаты вариантов итогов в разных полях запроса и автоматически сделать вывод на какой из вариантов тестируемый ответил больше всего «Да», запустив при этом соответствующий отчет, где будет описан вывод.
Пытался ввести условие в поле запроса «условие отбора», но происходит ошибка, либо при выполнении запрос просит ввести дополнительные данные для ввода, которые должны браться только с таблицы «Вопросы».
Также пробовал сделать подзапрос в режиме SQL, на что кроме ругани больше ничего не увидел.
Прикрепляю саму БД и скриншоты интересующей проблемы. Заранее благодарен, спасибо вам за помощь. https://drive.google.com/file/d/16vOkamEgTozvbK54HLn08LlaeJEZCPaK/view?usp=sharing
Ответы (1 шт):
Ввел условие в поле таблицы Вопросы «условие отбора» “[1 вариант]=CInt([1 вариант])”, которое должно переводить данные в целочисленный тип, но они не переводятся. Также попробовал 2 запроса в режиме SQL более правильный, который выдает ошибку “Sum(IIf(Вопросы.[1 вариант]=Вопросы.[1 вариант] And Вопросы.[1 вариант]>Вопросы.[2 вариант] And Вопросы.[1 вариант]>Вопросы.[3 вариант] And Вопросы.[1 вариант]>Вопросы.[4 вариант] And Вопросы.[1 вариант]>Вопросы.[5 вариант] And Вопросы.[1 вариант]>Вопросы.[6 вариант],Вопросы.[Сумма]=Вопросы.[1 вариант],Вопросы.[Сумма]=Sum(IIf(Вопросы.[2 вариант]=Вопросы.[2 вариант] And Вопросы.[2 вариант]>Вопросы.[1 вариант] And Вопросы.[2 вариант]>Вопросы.[3 вариант] And Вопросы.[2 вариант]>Вопросы.[4 вариант] And Вопросы.[2 вариант]>Вопросы.[5 вариант] And Вопросы.[2 вариант]>Вопросы.[6 вариант],Вопросы.[Сумма]=Вопросы.[2 вариант],Вопросы.[Сумма]=Sum(IIf(Вопросы.[3 вариант]=Вопросы.[3 вариант] And Вопросы.[3 вариант]>Вопросы.[2 вариант] And Вопросы.[3 вариант]>Вопросы.[1 вариант] And Вопросы.[3 вариант]>Вопросы.[4 вариант] And Вопросы.[3 вариант]>Вопросы.[5 вариант] And Вопросы.[3 вариант]>Вопросы.[6 вариант],Вопросы.[Сумма]=Вопросы.[3 вариант],Вопросы.[Сумма]=Sum(IIf(Вопросы.[4 вариант]=Вопросы.[4 вариант] And Вопросы.[4 вариант]>Вопросы.[2 вариант] And Вопросы.[4 вариант]>Вопросы.[3 вариант] And Вопросы.[4 вариант]>Вопросы.[1 вариант] And Вопросы.[4 вариант]>Вопросы.[5 вариант] And Вопросы.[4 вариант]>Вопросы.[6 вариант],Вопросы.[Сумма]=Вопросы.[4 вариант],Вопросы.[Сумма]=Sum(IIf(Вопросы.[5 вариант]=Вопросы.[5 вариант] And Вопросы.[5 вариант]>Вопросы.[2 вариант] And Вопросы.[5 вариант]>Вопросы.[3 вариант] And Вопросы.[5 вариант]>Вопросы.[4 вариант] And Вопросы.[5 вариант]>Вопросы.[1 вариант] And Вопросы.[5 вариант]>Вопросы.[6 вариант],Вопросы.[Сумма]=Вопросы.[5 вариант],Вопросы.[Сумма]=Вопросы.[6 вариант])))))))))) AS Выражение1, Sum([Сумма]) AS Выражение2,
/* сравнение результатов / Sum(IIf(Вопросы.[Выражение13]=Вопросы.[1 вариант],Выражение14="1",Выражение14="0")) AS Выражение15, Sum(IIf(Вопросы.[Выражение13]=Вопросы.[2 вариант] And Выражение14="0",Выражение14="2",Выражение14="0")) AS Выражение16, Sum(IIf(Вопросы.[Выражение13]=Вопросы.[3 вариант] And Выражение14="0",Выражение14="3",Выражение14="0")) AS Выражение17, Sum(IIf(Вопросы.[Выражение13]=Вопросы.[4 вариант] And Выражение14="0",Выражение14="4",Выражение14="0")) AS Выражение18, Sum(IIf(Вопросы.[Выражение13]=Вопросы.[5 вариант] And Выражение14="0",Выражение14="5",Выражение14="6")) AS Выражение19,
/ открытие соответствующего отчета исходя из результатов*/
IIF(Выражение15 <>"0",FORMS![1 Вариант].Controls![Нажатие кнопки],"0"),IIF(Выражение16 <>"0",FORMS![2 Вариант].Controls![Нажатие кнопки],"0"),IIF(Выражение17 <>"0",FORMS![3 Вариант].Controls![Нажатие кнопки],"0"),IIF(Выражение18 <>"0",FORMS![4 Вариант].Controls![Нажатие кнопки],"0"),IIF(Выражение19 = "5",FORMS![5 Вариант].Controls![Нажатие кнопки],FORMS![6 Вариант].Controls![Нажатие кнопки]) ”
и костыльный запрос в режиме SQL, который не выдает ошибку, но не работает и просит ввести данные в выражения, а они должны браться из таблицы Вопросы “ Sum(IIf(Вопросы.[1 вариант]=Вопросы.[1 вариант] And Вопросы.[1 вариант]>Вопросы.[2 вариант] And Вопросы.[1 вариант]>Вопросы.[3 вариант] And Вопросы.[1 вариант]>Вопросы.[4 вариант] And Вопросы.[1 вариант]>Вопросы.[5 вариант] And Вопросы.[1 вариант]>Вопросы.[6 вариант],Вопросы.[Сумма]=Вопросы.[1 вариант],Вопросы.[Сумма]=Вопросы.[Сумма])) AS Выражение1, Выражение3=Выражение3+Выражение1 AS Выражение4,
Sum(IIf(Вопросы.[2 вариант]=Вопросы.[2 вариант] And Вопросы.[2 вариант]>Вопросы.[1 вариант] And Вопросы.[2 вариант]>Вопросы.[3 вариант] And Вопросы.[2 вариант]>Вопросы.[4 вариант] And Вопросы.[2 вариант]>Вопросы.[5 вариант] And Вопросы.[2 вариант]>Вопросы.[6 вариант],Вопросы.[Сумма]=Вопросы.[2 вариант],Вопросы.[Сумма]=Вопросы.[Сумма])) AS Выражение2, Выражение3=Выражение3+Выражение2 AS Выражение5, и т.д. для каждого из вариантов
/* сравнение результатов / Sum(IIf(Вопросы.[Выражение13]=Вопросы.[1 вариант],Выражение14="1",Выражение14="0")) AS Выражение15, Sum(IIf(Вопросы.[Выражение13]=Вопросы.[2 вариант] And Выражение14="0",Выражение14="2",Выражение14="0")) AS Выражение16, Sum(IIf(Вопросы.[Выражение13]=Вопросы.[3 вариант] And Выражение14="0",Выражение14="3",Выражение14="0")) AS Выражение17, Sum(IIf(Вопросы.[Выражение13]=Вопросы.[4 вариант] And Выражение14="0",Выражение14="4",Выражение14="0")) AS Выражение18, Sum(IIf(Вопросы.[Выражение13]=Вопросы.[5 вариант] And Выражение14="0",Выражение14="5",Выражение14="6")) AS Выражение19,
/ открытие соответствующего отчета исходя из результатов*/
IIF(Выражение15 <>"0",FORMS![1 Вариант].Controls![Нажатие кнопки],"0"),IIF(Выражение16 <>"0",FORMS![2 Вариант].Controls![Нажатие кнопки],"0"),IIF(Выражение17 <>"0",FORMS![3 Вариант].Controls![Нажатие кнопки],"0"),IIF(Выражение18 <>"0",FORMS![4 Вариант].Controls![Нажатие кнопки],"0"),IIF(Выражение19 = "5",FORMS![5 Вариант].Controls![Нажатие кнопки],FORMS![6 Вариант].Controls![Нажатие кнопки])
FROM Вопросы
GROUP BY Вопросы.Код, Вопросы.[Название вопроса], Вопросы.[Сумма], Выражение5; ”.
На соответствующие отчеты поставил событие «Двойное нажатие кнопки» при обращении из запроса “=[Вопросы Запрос]![Выражение15]”. Прикрепляю саму БД и скриншоты интересующей проблемы. Заранее благодарен, спасибо вам за помощь.
введите сюда описание ссылки