Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите!!! сложный запрос
 
 автор: El   (09.04.2007 в 11:52)   личное сообщение
 
 

в запросе есть поля: ключ_А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, поэтому простым запросом неполучается :(

  Ответить  
 
 автор: час   (11.04.2007 в 20:38)   личное сообщение
 
 

А почему это всё необходимо сделать в запросе?
Может подойдёт вариант программного решения, с послед. занесением результата в таблицу?

  Ответить  
 
 автор: ДрЮня   (12.04.2007 в 11:07)   личное сообщение
 
 

присоединяюсь. задачу надо разбить на 3 части
- получаем данные из таблиц;
- обрабатываем данные;
- выгружаем результат в таблицы;

  Ответить  
 
 автор: Йожык   (12.04.2007 в 15:28)   личное сообщение
 
 

Сразу и не ответить...
Уточнимся?

> в запросе есть поля: ключ_А1, ключ_А2, ключ_А3 и т.д., и Ответ_А1, Ответ_А2, Ответ_А3
Подозревая, что есть поля "Ключ" и "Ответ" , а остальное - их значения

>If Ответ_А2= ключ_А2 then (Ответ_А2 - 2)
Подозревая, что результирующее поле надо не сравнивать, а оно есть результат действия
Результирующее поле=Ответ - ключ, либо нечто подобное.
Иначе, зачем ключи?

  Ответить  
 
 автор: El   (13.04.2007 в 12:08)   личное сообщение
 
 

Уточняюсь :)
конечно же запуталась

Есть поля в которых будет выводиться результат - "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

как получить данные из таблицы для дальнейшей обработки?

  Ответить  
 
 автор: Вячеслав   (13.04.2007 в 22:55)   личное сообщение
 
 

Для проверки определенных значений в одном поле и подстановки в формуле в зависимости от значения поля есть функция IIf([ПолеТаблицы] - проверяется на любое условие, например >=0 или IsNull([ПолеТаблицы]] и т. д. ;Значение нужное Вам если ПолеТаблицы соответствует заданому условию;IIf( далее идет еще проверка путем вложения функции, но помоему до 7раз не больше.
Есть еще одна функция DSum() - ей можно подсчитать количество значений в поле удовлетворяющих указанному условию.
Но в Вашей ситуации не совсем понятно как распологаются данные в таблицах. В полях Ключ_А1 и Ключ_А2 и т.д. данные отличаются только между собой или они разные в самом поле? Постарайтесь объснить какие есть поля в таблице, какие в них данные и какой результа Вам необходимо получить в запросе.
Возможно Вашу проблему можно решить с помощью справочной таблицы в которой Вы перечислите все Ваши ключи и связанные с ними значения, а в запросе будете выбирать их с помощью функции DLookUp()

  Ответить  
 
 автор: Вячеслав   (13.04.2007 в 23:00)   личное сообщение
 
 

Для проверки определенных значений в одном поле и подстановки в формуле в зависимости от значения поля есть функция IIf([ПолеТаблицы] - проверяется на любое условие, например >=0 или IsNull([ПолеТаблицы]] и т. д. ;Значение нужное Вам если ПолеТаблицы соответствует заданому условию;IIf( далее идет еще проверка путем вложения функции, но помоему до 7раз не больше.
Есть еще одна функция DSum() - ей можно подсчитать количество значений в поле удовлетворяющих указанному условию.
Но в Вашей ситуации не совсем понятно как распологаются данные в таблицах. В полях Ключ_А1 и Ключ_А2 и т.д. данные отличаются только между собой или они разные в самом поле? Постарайтесь объснить какие есть поля в таблице, какие в них данные и какой результа Вам необходимо получить в запросе.
Возможно Вашу проблему можно решить с помощью справочной таблицы в которой Вы перечислите все Ваши ключи и связанные с ними значения, а в запросе будете выбирать их с помощью функции DLookUp()

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList