Расширенные средства ввода данных
Тема 12. РАСШИРЕННЫЕ СРЕДСТВА ВВОДА ДАННЫХ.
СОЗДАНИЕ ПОДЧИНЕННЫХ ФОРМ
Например, у нас есть перекрестный запрос, находящий суммы продаж по каждому товару за каждый месяц. Мы знаем, что с помощью Мастера перекрестных запросов мы можем найти сумму по строке (по каждому товару). Однако еще одним удобным способом отображения перекрестных запросов является форма.
Предположим, первоначально мы создали такую форму:
Код товара Код товара
1 кв 2 кв Январь Янв-2000 Апрель Апр-2000 Рекомендуемые материалыРасчетно-графическая работа по курсу «Программирование». Семинар 2. Овладение навыками обработки символьных данных. Вариант 8 FREE Типизированные файлы. Базы данных с выборкой ЛР №1 - реализация абстрактного типа данных FREE Проектирование базы данных "Больница" FREE Разработка базы данных футбольного клуба FREE Создание с помощью SQL Server базы данных для магазина продуктов Февраль Февр-2000 Май Май-2000 Март Март-2000 Июнь Июнь-2000 |
на основе следующего запроса:
Код товара | Янв-2000 | Февр-2000 | Март-2000 | Апрель-2000 | Май-2000 | Июнь-2000 |
1 | 30 | 10 | 11 | 10 | ||
2 | 50 | 15 | ||||
3 | 10 | 12 |
При таком запросе результат выполнения формы будет выглядеть следующим образом:
Код товара 1 Январь 30 Апрель 11 Февраль Май Март 10 Июнь 10 |
Мы хотим рассчитать суммы продаж по каждому кварталу, а затем общую сумму за год.
Для этого необходимо добавить вычисляемые поля, складывающие значения по продажам по каждому кварталу. Однако, в некоторых месяцах объем продаж – пуст. При таких значениях Access не будет подсчитывать значения итоговых сумм. Для этого нужно сделать следующее:
1) выделив поля Янв-2000 и вызвать его Свойства. Во вкладке Данные будет стоять янв-2000 (имя поля исходного запроса). Нам нужно сделать так, чтобы если значение этого поля нулевые (is Null), то в в форме на ее месте должен находиться 0, а иначе – значение данного поля. Для этого в строке данные нужно вызвать построитель ___ и с помощью функций записать вражение:
iif(is Null([янв-2000]));0; [янв-2000]
2) во вкладке Имя изменить имя поля и Янв-2000 на Январь, т.к. при подсчетах суммы за квартал мы будем использовать теперь не поле исходного запроса Янв-2000, а наше расчетное поле. Поэтому их имена должны отличаться.
3) тоже самое проделать с остальными полями формы. В построителе выражений удобно использовать для ввода названий полей список полей формы.
4) под каждым столбец, содержащим данные по месяцам одного и того же квартала, добавить вычисляемое поле
Рекомендация для Вас - Механизм поиска буфера.
Итого = [Январь]+[Февраль]+[Март]
Обратите внимание, что для подсчета суммы используются не исходные поля [Янв-2000] и т.д., а имена вычисляемых полей [Январь] и т.д.
5) вызвать свойства добавленных ___ полей и присвоить им имена (вкладка Все, строка Имя): Квартал 1, Квартал 2…
6) добавить еще одно ____ поле, определяющее сумму продаж за год
Итого за год = [Квартал 1]+[Квартал 2]+…