|
|
|
| в запросе есть поля: ключ_А1, ключ_А2, ключ_А3 и т.д., и Ответ_А1, Ответ_А2, Ответ_А3 и т.д
нужно сделать расчет по формуле, я незнаю как сделать это программно
If Ответ_А1= ключ_А1 then (Ответ_А1 - 2)
просуммировать все найденные записи и разделить на их же количество
причем нужно сделать это и со всеми остальными
If Ответ_А2= ключ_А2 then (Ответ_А2 - 2)
If Ответ_А3= ключ_А3 then (Ответ_А3 - 2)
полей типа Ответ_А1 и ключ_А1 по 45, поэтому простым запросом неполучается :( | |
|
| |
|
|
|
| А почему это всё необходимо сделать в запросе?
Может подойдёт вариант программного решения, с послед. занесением результата в таблицу? | |
|
| |
|
|
|
| присоединяюсь. задачу надо разбить на 3 части
- получаем данные из таблиц;
- обрабатываем данные;
- выгружаем результат в таблицы; | |
|
| |
|
|
|
| Сразу и не ответить...
Уточнимся?
> в запросе есть поля: ключ_А1, ключ_А2, ключ_А3 и т.д., и Ответ_А1, Ответ_А2, Ответ_А3
Подозревая, что есть поля "Ключ" и "Ответ" , а остальное - их значения
>If Ответ_А2= ключ_А2 then (Ответ_А2 - 2)
Подозревая, что результирующее поле надо не сравнивать, а оно есть результат действия
Результирующее поле=Ответ - ключ, либо нечто подобное.
Иначе, зачем ключи? | |
|
| |
|
|
|
| Уточняюсь :)
конечно же запуталась
Есть поля в которых будет выводиться результат - "rir_A1", "rir_A2" и т.д.
Но это только начало формулы...поэтому хотелось бы все слеать программно и в "rir_A1" ...вывести только конечный результат
If Ответ_А1= ключ_А1 then
"rir_A1" = (Набранный_балл - 2)
Else "rir_A1" =0
If Ответ_А2= ключ_А2 then
"rir_A2" = (Набранный_балл - 2)
Else "rir_A2" =0
как получить данные из таблицы для дальнейшей обработки? | |
|
| |
|
|
|
| Для проверки определенных значений в одном поле и подстановки в формуле в зависимости от значения поля есть функция IIf([ПолеТаблицы] - проверяется на любое условие, например >=0 или IsNull([ПолеТаблицы]] и т. д. ;Значение нужное Вам если ПолеТаблицы соответствует заданому условию;IIf( далее идет еще проверка путем вложения функции, но помоему до 7раз не больше.
Есть еще одна функция DSum() - ей можно подсчитать количество значений в поле удовлетворяющих указанному условию.
Но в Вашей ситуации не совсем понятно как распологаются данные в таблицах. В полях Ключ_А1 и Ключ_А2 и т.д. данные отличаются только между собой или они разные в самом поле? Постарайтесь объснить какие есть поля в таблице, какие в них данные и какой результа Вам необходимо получить в запросе.
Возможно Вашу проблему можно решить с помощью справочной таблицы в которой Вы перечислите все Ваши ключи и связанные с ними значения, а в запросе будете выбирать их с помощью функции DLookUp() | |
|
| |
|
|
|
| Для проверки определенных значений в одном поле и подстановки в формуле в зависимости от значения поля есть функция IIf([ПолеТаблицы] - проверяется на любое условие, например >=0 или IsNull([ПолеТаблицы]] и т. д. ;Значение нужное Вам если ПолеТаблицы соответствует заданому условию;IIf( далее идет еще проверка путем вложения функции, но помоему до 7раз не больше.
Есть еще одна функция DSum() - ей можно подсчитать количество значений в поле удовлетворяющих указанному условию.
Но в Вашей ситуации не совсем понятно как распологаются данные в таблицах. В полях Ключ_А1 и Ключ_А2 и т.д. данные отличаются только между собой или они разные в самом поле? Постарайтесь объснить какие есть поля в таблице, какие в них данные и какой результа Вам необходимо получить в запросе.
Возможно Вашу проблему можно решить с помощью справочной таблицы в которой Вы перечислите все Ваши ключи и связанные с ними значения, а в запросе будете выбирать их с помощью функции DLookUp() | |
|
| |