Вопрос № 39693: Здравствуйте!
Вопрос по Access
Например у меня есть таблица с полями "количество" и "цена за еденицу" как мне расчитать общую сумму (количество * цену) по всем строкам таблицы ? Очень желательно не использовать правку само...
Вопрос № 39.693
Здравствуйте!
Вопрос по Access
Например у меня есть таблица с полями "количество" и "цена за еденицу" как мне расчитать общую сумму (количество * цену) по всем строкам таблицы ? Очень желательно не использовать правку самого SQL запроса.
Заранее благодарен.
Отправлен: 08.04.2006, 00:51
Вопрос задал: ALEXANDER (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Genyaa
Здравствуйте, ALEXANDER!
На сколько я понимаю, создать вычисляемое поле в самой таблице без запроса в Access только средствами непосредственно самой таблицы не получится. Оно и понятно, т.к. значения полей таблицы Access'у становятся известными только ПОСЛЕ сохранения редактируемой записи.
В Access вычисляемые поля предлагается делать именно через запрос... См. Помощь (Справка), топик "Создание вычисляемого поля в запросе"...
Но... можно организовать заполнение поля таблицы результатом вычисления с использованием значений других полей, если таблица заполняется через форму, т.к. в форме значения редактируемых полей могут быть известны Access'у непосредственно по ходу работы с формой. Для этого нужно в форме работы с таблицей создать несколько обработчиков событий, которые бы заполняли поле, которое нужно вычислять по мере ввода данных в форму или при переходе от записи к записи или как-нибудь еще.
Еще один способ - создать и обработать запрос на обновление. Для этого нужно создать простой запрос с выводом всех полей, в режиме конструктора назначить этому запросу тип "Обновление", а полю Сумма назначить Обновление выражением произведения полей Цена и Количество. При обработке такого запроса поле Сумма во всех записях таблицы обновятся на значение назначенного выражения.
--------- Всякое решение плодит новые проблемы.
Ответ отправил: Genyaa (статус: 3-ий класс)
Ответ отправлен: 08.04.2006, 10:28