Заполнение связанных таблиц через форму ввода. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Заполнение связанных таблиц через форму ввода.



Использование элементов программирования при вводе данных

Когда таблицы связаны данные в них должны вноситься одновременно, если обеспечивается контроль целостности данных. Поэтому следует создать специальные формы ввода. В зависимости от связи они могут быть связанными, обычными (для всех виды связей), подчиненными (для связи один ко многим). Создадим обычную форму для ввода данных персонала магазина и учета отработанных ими смен. Воспользуемся мастером форм, где в качестве источника сначала укажем все поля таблицы «Персонал», а затем все кроме ключевого поля таблицы «Учет работы персонала». Для разметки формы будем использовать ленточный тип, в качестве фона можно выбрать любой.

Открыв, созданную форму, вы увидите, что она несколько неудобна для ввода данных. Поэтому в режиме конструктора изменим структуру созданной нами формы. Сначала необходимо создать все три области формы (Заголовок, область данных, примечание формы), если какая-то из них отсутствует. Для этого зайдите в режиме конструктора формы в меню Вид и выберите там команду Заголовок/Примечание формы. Для того, чтобы увеличить или уменьшить область ее необходимо растянуть с помощью передвижения соответствующей границы. Измените созданную вами форму, как показано на рис. 3.8.

Чтобы не вводить каждый раз пол работника (их всего два) создадим раскрывающийся список, где будет можно выбрать пол. Обратите внимание, что при создании элементов формы с панели инструментов ToolBox необходимо, чтобы был включен режим мастеров. Сначала удалите существовавшее до этого текстовое поле, затем выберите элемент раскрывающийся список на панели инструментов ToolBox. После размещения списка в нужном месте в появляющемся диалоге необходимо выбрать, что в «поле со списком» будет введен фиксированный набор значений и нажать кнопку «Далее». В появившемся снова диалоговом окне следует указать, что в списке будет один столбец и внести его значения.

Далее следует указать, что данные выбранные в списке следует сохранять в поле, имя которого нужно выбрать в имеющемся справа списке (см. рис. 3.9), после чего следует нажать кнопку «Далее», указать имя раскрывающегося списка и выбрать команду «Готово». Аналогично создайте список, отражающий месяца года, с той лишь разницей, что хранить значения в каком-то поле не надо, значение их нужно запомнить.

Для создания кнопки закрытия используйте диалог кнопки. Слева выберите «Работа с формой», а справа «Закрыть форму». После чего можно нажать «Готово».

Заполните форму по персоналу для 2 продавцов, 1 продавца-консультанта, 1 менеджера по продажам, 2 шоферов, 1 уборщицы, 2 охранников, 1 директора, 1 маркетолога, 1 менеджера по кадрам и (12 человек).

Создайте подчиненную форму по отношению к имеющемуся ассортименту товаров для оформления заказов клиентов. В режиме просмотра («Открыть») внесите картинки товаров и заполните для каждого из имеющихся клиентов не менее 2 разных заказов.

3.2. Запросы с элементами программирования

1. Создадим запрос, рассчитывающий заработную плату для каждого работника, с учетом того, что ему назначается премия 10 % от оклада в случае, если отработано боле 24 смен и премия 25 %, если отработано 30 и более смен. В данном случае создадим запрос с вычислениями через построитель выражений, и будем использовать функцию управления IIf, схожую по своей структуре со стандартной функцией ветвления:

IIf(<условие>;<действие, выполняющиеся, когда условие верно >;<действие, выполняющиеся, когда условие не верно>)

Первоначально необходимо вычислить количество отработанных каждых работником смен, то есть сложить все смены(даты). Не забудьте использовать функцию модуля abs() для того, чтобы выражение получилось положительным (см. рис. 3.10).

После этого запрос необходимо сохранить, чтобы использовать вычисленное поле. Функция IIf в построителе выражений будет выглядеть следующим образом:

Зарплата: IIf([Количество смен]>=30;[Персонал]![Оклад за смену]*[Количество смен]*1,25;IIf([Количество смен]>24;[Персонал]![Оклад за смену]*[Количество смен]*1,1;[Персонал]![Оклад за смену]*[Количество смен]))

Создадим запрос, выдающий приветствие работнику магазина в зависимости от пола: Уважаемый …! Уважаемая…!

Здесь мы снова воспользуемся функцией IIf и строковыми функциями. Обратите внимание, что при сложении строк образуется новая строка, объединяющая обе, но без пробела. Пробел добавляется искусственно:

Обращение: IIf([Персонал]![Пол]="М";"Уважаемый "+[Персонал]![Фамилия] +

” ”+[Персонал]![Имя] +” ”+[Персонал]![Отчество] +” ”+"!";"Уважаемая "+[Персонал]![Фамилия] +” ”+[Персонал]![Имя] +” ”+[Персонал]![Отчество]+ ” ”+"!")

2. Рассчитайте прибыль от продаж для определенного периода. Здесь мы составим сначала запрос, рассчитывающий стоимость проданных товаров. В построителе выражений для расчета стоимости поле количество возьмем из таблицы «Заказы», а цену из таблицы «Товары». Затем зададим параметры на начальную и конечную дату и поставим в условие соответствующие ограничения (см. рис. 3.11).

После этого по отношению к запросу с расчетом сумм продаж в определенный период создадим простой запрос, рассчитывающий сумму стоимости проданного товара, то есть прибыль.



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 249; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.136.18.48 (0.006 с.)