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