Создание элемента управления Кнопка
В MS Access встроены инструменты автоматизации БД, создаваемых в среде этой СУБД. Такими инструментами могут служить элементы управления. Например, элемент Кнопка позволяет выполнять в БД действия непосредственно из формы.
1. Приступая к созданию в форме элемента Кнопка, необходимо проследить, чтобы в группе Элементы управления контекстной вкладки Инструменты конструктора форм – Конструктор ленты инструментов была нажата кнопка Использовать Мастера .
2. Щелкнуть мышью в группе Элементы управления контекстной вкладки Инструменты конструктора форм – Конструктор ленты инструментов элемент Кнопка. При перемещении указателя мыши в область формы, он превратится в крестик с прямоугольником.
3. Одним щелчком мыши отметить в форме место, где будет расположена кнопка. Сразу после этого на экране появится первое окно Мастера создания кнопок (рис. 9.10), в котором нужно определить выполняемое кнопкой действие.
4. Выбрать в поле списка Категории строку Работа с формой. В правой части окна в поле списка Действия отобразится список действий, которые можно производить с формами. После выбора нужного действия (например, Открытие формы) надо нажать кнопку Далее для перехода к следующему шагу.
5. В следующем Окне Мастера нужно выбрать форму, открываемую кнопкой. Для перехода к следующему шагу нажимаем кнопку Далее.
рис. 9.10. Первое окно Мастера создания кнопок |
6. В следующем окне Мастер создания кнопки предлагает определить, нужно ли проводить отбор данных для открываемой формы. Если необходимо показать записи, относящиеся к одному объекту главной формы (например, Заказы для выбранного Клиента), то установить переключатель в строке Открыть форму для отобранных записей (рис. 9.11). В противном случае для просмотра всех записей одновременно в открываемой форме установить переключатель в строке Открыть форму и показать все записи.
7. В следующем окне нужно определить соответствующие поля в обеих формах, по которым будет производиться отбор данных. В нашем примере это поле Код клиента в обеих формах. Необходимо выделить это поле в обоих списках полей таблиц и нажать кнопку между полями списка. Перейти к следующему окну Мастера.
8. Это окно Мастера поможет оформить внешний вид создаваемой кнопки. По умолчанию на кнопке предполагается поместить рисунок, который ассоциируется с выполняемым кнопкой действием. Разработчик БД может выбрать предполагаемые стандартные рисунки или с помощью кнопки Обзор найти другой рисунок. Вместо рисунка на кнопке можно поместить надпись, что в некоторых случаях более удобно. Для этого нужно щелкнуть мышью в поле Текст и заменить фразу Открытие формы своим текстом.
рис. 9.11. Окно отбора данных для открываемой формы |
9. Следующее окно Мастера предлагает задать имя кнопки. MS Access предлагает стандартные названия элементам управления, так что можно пропустить этот шаг, сразу нажав кнопку Готово.
Задания
1. Создайте в режиме Конструктора формформы для таблиц «Товар» и «Сделка». Измените в режиме Конструктора форм для формы «Сделка» поля с числовым типом данных на поля со списком (поля Товар, Продавец, Покупатель):
1.1. В окне свойств для каждого поля со списком необходимо задать Источник строк, Число столбцов и Ширину столбцов. Поскольку товар характеризуется совокупностью трех свойств (Тип, Марка, Артикул), то из таблицы «Товар», являющейся Источником строк для поля со списком Товар, необходимо выбрать помимо поля КодТовара, являющегося ключевым, поля Тип, Марка, Артикул. Поскольку названия типов и марок товаров хранятся в отдельных таблицах, то необходимо добавить таблицы «ТипТовар» и «МаркаТовар» и выбрать из них поля, содержащие названия типов и марок товаров.
1.2. Продавец может совершать сделку, если товар имеется на складе. Наличие товара на складе определяется полем Количество таблицы «Товар»: если Количество > 0, то товар есть на складе. Поэтому необходимо при построении запроса для выбора Источника строк для поля со списком Товар добавить поле Количество из таблицы «Товар» и установить в нем условие >0.
1.3. Количество продаваемого товара может быть <= Количеству товара, имеющегося на складе. Чтобы контролировать значение в поле Количество при заполнении формы «Сделка», необходимо поле Количество таблицы «Товар» отобразить на экране. Таким образом, свойство Число столбцов для поля со списком Товар будет равно 5, а свойство Ширина столбцов будет содержать 5 значений: 0 см и 4 любых числа, например, 3 см; 3 см; 3 см; 3 см.
1.4. Для того чтобы в поле со списком Товар были видны на экране все 4 значения, необходимо в свойстве Ширина списка изменить значение Авто, например, на значение 12 см.
1.5. Для поля со списком Продавец в форме «Сделка» Источником строк является таблица «Сотрудник». Из нее необходимо выбрать всех сотрудников, которые работают в должности продавца. Названия должностей хранятся в таблице «Должность», поэтому для создания условия отбора необходимо добавить таблицу «Должность» и выбрать из нее поле Название. Установить в этом поле условие отбора, вывод на экран для этого поля можно отменить. Тогда Число столбцов будет равно 2, Ширина столбцов: 0 см; 2 см.
1.6. Источником строк для поля со списком Покупатель является таблица «Покупатель». Из нее необходимо выбрать ключевое поле, по которому организована связь, и текстовое поле, содержащее название фирмы-покупателя, для отображения в списке. Таким образом, Число столбцов будет равно 2, Ширина столбцов: 0 см; 2 см.
2. Заполните таблицу «Сделка» с помощью соответствующей формы данными, приведенными ниже.
(Замечания:
2.1. Значения Продавец, Покупатель и Товар выбираются из списков. Для удобства выбора значения в списках можно расположить по алфавиту. Остальные поля заполняются вручную.
2.2. Для удобства заполнения поля ДатаСделки в режиме Конструктора форм в окне свойств задайте Формат поля (Краткий формат даты) и Маску ввода).
Таблица «Сделка»
НомерНакладной | Продавец | Покупатель | Товар (Тип, Марка, Артикул) | Количество | Дата Сделки | Опт |
10-06-А | Алексеев | ММН | телевизор (AKAI, LTA-26A901) | 06.02.2009 | Да | |
20-06-А | Алексеев | ММН | автомагнитола (PIONEER, DEN-P6850MP) | 25.03.2009 | Нет | |
11-06-Д | Данилов | ЕВРОПА | пылесос (THOMAS, TWIN TT AQUAFILTER) | 20.04.2009 | Да | |
10-06-Л | Ларина | СОВИНТ | видеомагнитофон (SONY, DCR-SR100E) | 05.03.2009 | Да | |
11-06-Л | Ларина | АЛИНА | автомагнитола (PIONEER, DEN-P6850MP) | 14.03.2009 | Да | |
10-06-Р | Романова | ТЕРРА | автомагнитола (PIONEER, DEN-P75BT) | 16.03.2009 | Нет | |
10-06-С | Сергеев | МАДРИД | радиотелефон (VOXTEL, 27) | 01.02.2009 | Нет | |
10-06-Д | Данилов | РИСТ | фотоаппарат (OLYMPUS, FE-170) | 01.04.2009 | Да | |
07-06-Л | Ларина | ТОМО | часы наручные (TISSOF, T91.1.483.31) | 11.02.2009 | Да | |
01-06-Р | Романова | ТОМО | фотоаппарат (SAMSUNG, DIGIMAX L80) | 20.02.2009 | Да | |
14-06-С | Сергеев | ТОМО | чайник (KENWOOD, JK 60) | 02.03.2009 | Да | |
30-06-Л | Ларина | ГЕФЕСТ | наушники (COSONIC, SD710MVS) | 29.05.2009 | Нет | |
15-06-А | Алексеев | НИКС | микрофон (ORIENT, M29) | 14.02.2009 | Нет | |
16-06-Д | Данилов | САНЛАЙТ | бритва (BRAUN, 8995) | 18.05.2009 | Нет | |
22-06-Л | Ларина | БАРС | сотовый телефон (SONY ERICSSON, 790I) | 19.03.2009 | Да | |
01-06-Д | Данилов | РИСТ | фен (BRAUN, CI 1800 MN) | 26.03.2009 | Нет | |
05-06-Д | Данилов | ПАЛАДИН | кухонный комбайн (BRAUN, K 3000) | 02.03.2009 | Нет | |
25-06-Л | Ларина | ЕВРОПА | утюг (KENWOOD, IC700) | 20.04.2009 | Да |
3. Создайте запрос, позволяющий получить информацию о проведенных сделках и об оптовой и розничной ценах проданного товара. Рассчитайте в запросе суммы сделок по формулам:
СуммаСделкиОпт =
IIf([Опт]=Да;ЦенаОптовая * Количество;0)
СуммаСделкиРозн =
IIf([Опт]=Нет;ЦенаРозничная * Количество;0)
Также рассчитайте разницу между суммами сделок, проведенными по розничной и оптовой ценам, по формуле:
Разница = СуммаСделкиРозн - СуммаСделкиОпт
Сохраните запрос под именем «СуммыСделок».
4. Откройте форму «Сделка» в режиме Конструктора и измените Источник записей для этой формы. В качестве Источника записей выберите запрос «СуммыСделок». Добавьте в форму поля: ЦенаОптовая, ЦенаРозничная, СуммаСделкиОпт, СуммаСделкиРозн и Разница.
5. Добавьте в форму «Сделка» еще 5 записей:
НомерНакладной | Продавец | Покупатель | Товар (Тип, Марка, Артикул) | Количество | Дата | Опт |
100-06-А | Алексеев | ЕВРОПА | микроволновая печь (BOSCH, HMT 8656 EU) | 30.05.2009 | Нет | |
100-06-Р | Романова | ПАЛАДИН | кофеварка (BOSCH, TCA 6701) | 10.02.2009 | Нет | |
100-06-Д | Данилов | ЕВРОПА | весы напольные (TEFAL, 79102) | 20.02.2009 | Да | |
90-06-А | Алексеев | ЕВРОПА | мясорубка (BRAUN, G-1500 MN) | 28.03.2009 | Да | |
95-06-А | Алексеев | ПАЛАДИН | радиоприемник (TEAC, R-2) | 30.03.2009 | Нет |
6. Создайте в режиме Конструктора форм форму для таблицы «Архив». Также измените поля с числовым типом данных на поля со списком. (Поля Тип, Марка, Поставщик, Доставка).
7. Для заполнения адресов Фирм-покупателей и Фирм-поставщиков необходимо воспользоваться БД «КЛАДР» (на сервере). Импортируйте все таблицы и схему данных БД «КЛАДР» в БД «Учет товарооборота».
8. В окне Схемы данных создайте связь между таблицами «Покупатель» и «Регионы» по полю Регион и связь между таблицами «Поставщик» и «Регионы» по полю Регион.
9. Для формы «Покупатель» измените в режиме Конструктора форм поля с числовым типом данных на поля со списком. (Поля ТипРегиона, Регион, Район, ТипНаселенногоПункта, НаселенныйПункт, Индекс, ТипУлицы, Улица). (Замечание. В п.п. 9.1 – 9.3 даны пояснения к выбору параметров для полей со списком. Параметры для полей со списком представлены в таблице.)
9.1. Источниками строк для полей со списком являются соответствующие таблицы, импортированные из БД «КЛАДР».
9.2. Для полей Регион, Район, НаселенныйПункт, Индекс и Улица необходимо создать согласованные списки:
9.2.1. В поле со списком Регион должны попадать значения в соответствии с выбранным типом региона в поле со списком ТипРегиона. Чтобы это организовать, необходимо в свойстве Источник строк для поля со списком Регион из таблицы «Регионы» выбрать поля КодРегиона, Регион и ТипРегиона. Для поля ТипРегиона в строке Условие отбора указать, что значение типа региона выбирается из поля со списком ТипРегиона: Forms![Покупатель]![ТипРегиона] и убрать флажок Вывод на экран. Поскольку выбор типа региона и региона осуществляется в одной записи, необходимо после выбора типа региона обновить поле со списком Регион. Для этого в свойство После обновления поля со списком ТипРегиона необходимо поместить макрос, по которому выполняется обновление поля со списком Регион.
(Замечание: Для создания макроса необходимо перейти на вкладку Создание ленты инструментов, выбрать команду Макрос для открытия Конструктора макросов, в столбце Макрокоманда выбрать из списка Обновление, в нижней части окна в Аргументах макрокоманды внести Имя элемента Регион. Сохранить макрос под именем «ОбновлениеРегион».)
9.2.2. В поле со списком Район должны попадать значения, соответствующие выбранному региону в поле со списком Регион. Для этого проделываем операции, аналогичные описанным в пункте 9.2.1. Поскольку между таблицами «Регионы» и «Районы» существует сложная связь, и выбор региона и района осуществляется в одной записи, необходимо после выбора региона обновить поле со списком Район. Для этого в свойство После обновления поля со списком Регион необходимо поместить макрос, по которому выполняется обновление поля со списком Район.
(Замечание: Макрос создается аналогично пункту 9.2.1. Сохранить макрос под именем «ОбновлениеРайон».)
9.2.3. Для создания согласованного списка в поле со списком НаселенныйПункт необходимо выбрать из таблицы «НП» поля КодНП, Название, КодТипаНП, КодРегиона, КодРайона. Поля КодТипаНП, КодРегиона, КодРайона выбираются для указания соответствующих Условий отбора, и нет необходимости выводить их на экран. По причинам, аналогичным указанным выше в пункте 9.2.2, необходимо после выбора типа населенного пункта обновить поле со списком НаселенныйПункт. Для этого в свойство После обновления поля со списком ТипНаселенногоПункта необходимо поместить макрос, по которому выполняется обновление поля со списком НаселенныйПункт.
(Замечание: Макрос создается аналогично пункту 9.2.1. Сохранить макрос под именем «ОбновлениеНП».)
9.2.4. Значение в поле со списком Индекс соответствует значению населенного пункта, выбранного из поля со списком НаселенныйПункт, и содержится в таблице «НП». Для создания согласованного списка в поле со списком Индекс необходимо выбрать из таблицы «НП» все те же самые поля, как и для поля со списком НаселенныйПункт, и еще поле Индекс. Поэтому на экран будут выводиться 3 поля. Вывод поля Название необходим для контроля соответствия выбранного НП и индекса. Поле со списком Индекс тоже необходимо обновлять. Поскольку значения в полях со списком НаселенныйПункти Индекс выбираются из одной таблицы, то обновлять их можно тоже одновременно. Для этого надо исправить макрос «ОбновлениеНП»: добавить в столбце Макрокоманда вторую строку с командой Обновить, а в аргументах макрокомандыуказать Имя элемента Индекс.
9.2.5. Для создания согласованного списка в поле со списком Улица необходимо выбрать из таблицы «Улицы» поля КодУлицы, Название, КодТипаУлицы, КодРегиона, КодРайона, КодНП. Поля КодТипаУлицы, КодРегиона, КодРайона, КодНП выбираются для указания соответствующих Условий отбора, и нет необходимости выводить их на экран. Обновляется поле со списком Улица в поле со списком ТипУлицы в свойстве После обновления с помощью макроса «ОбновлениеУлица», созданному аналогично предыдущим.
9.3. Чтобы форма «Покупатель» позволяла просматривать введенные данные, необходимо организовать обновление записей при переходе от одной записи к другой, поскольку они содержат согласованные списки. Решить эту задачу можно, создав, например, кнопку Следующая запись, используя Мастер создания элементов управления, а затем поместив в свойство этой кнопки Нажатие кнопки макрос «ОбновлениеПокупатель».
(Замечание: Макрос включает макрокоманду НаЗапись с аргументами макрокоманды: Тип объекта - Форма, Имя объекта - Покупатель, Запись - Следующая, Смещение - 1, а также 5 макрокоманд Обновление с аргументами, соответственно, для Имен элемента Регион, Район, НаселенныйПункт, Индекс и Улица.)
10. Перед заполнением таблицы «Покупатель» откройте форму «Покупатель» в режиме Конструктора и в Окне свойств формы в свойстве Кнопки перехода установите значение Нет.
11. Заполните таблицу «Покупатель» с помощью соответствующей формы недостающими данными, приведенными ниже в таблице «Покупатель» (данные для адреса).
Таблица. Параметры для полей со списком формы «Покупатель»
Поле со списком | Источник строк | Выбранные поля | Условия | Число столбцов | Ширина столбцов | Макрос события После обновления |
ТипРегиона | ТипыРегионов | КодТипаРегиона, Название | 0 см; 2 см | ОбновлениеРегион | ||
Регион | Регионы | КодРегиона, Регион, ТипРегиона | Для поля ТипРегиона [Forms]![Покупатель]![ТипРегиона] | 0 см; 2 см | ОбновлениеРайон | |
Район | Районы | КодРайона, Название, КодРегиона | Для поля КодРегиона [Forms]![Покупатель].[Регион] | 0 см; 2 см | ||
ТипНаселенногоПункта | ТипыНП | КодТипаНП, ТипНП | 0 см; 2 см | ОбновлениеНП | ||
НаселенныйПункт | НП | КодНП, Название, КодТипаНП, КодРегиона, КодРайона | Для поля КодТипаНП [Forms]![Покупатель].[ТипНаселенногоПункта]; для поля КодРегиона [Forms]![Покупатель].[Регион]; для поля КодРайона [Forms]![Покупатель].[Район] | 0 см; 2 см |
Поле со списком | Источник строк | Выбранные поля | Условия | Число столбцов | Ширина столбцов | Макрос события После обновления |
Индекс | НП | КодНП, Индекс, Название, КодТипаНП, КодРегиона, КодРайона | Для поля КодТипаНП [Forms]![Покупатель].[ТипНаселенногоПункта]; для поля КодРегиона [Forms]![Покупатель].[Регион] для поля КодРайона [Forms]![Покупатель].[Район] | 0 см; 2 см; 2 см | ||
ТипУлицы | ТипыУлиц | КодТипаУлицы, ТипУлицы | 0 см; 2 см | ОбновлениеУлица | ||
Улица | Улицы | КодУлицы, Название, КодТипаУлицы, КодРегиона, КодРайона, КодНП | Для поля ТипКодаУлицы [Forms]![Покупатель].[ТипУлицы]; для поля КодРегиона [Forms]![Покупатель].[Регион]; для поля КодРайона [Forms]![Покупатель].[Район]; для поля КодНП [Forms]![Покупатель].[НаселенныйПункт] | 0 см; 2 см |
Таблица «Покупатель» (данные для адреса)
Код Покупателя | Название Фирмы | Тип Региона | Регион | Район | Тип НП | НП | Индекс | Тип Улицы | Улица | Дом | Комната |
АЛИНА | область | ВОРОНЕЖСКАЯ | [пустая строка] | город | ВОРОНЕЖ | улица | КОСМОНАВТОВ | ||||
АВРОРА | область | КУРСКАЯ | КУРСКИЙ | город | КУРСК | улица | МАРКСА | ||||
БАРС | область | ЛИПЕЦКАЯ | ЛИПЕЦКИЙ | город | ЛИПЕЦК | улица | МОЛОДЕЖНАЯ | ||||
КАНТОР | область | НОВГОРОДСКАЯ | НОВГОРОДСКИЙ | город | НОВГОРОД | улица | МИРА | ||||
ДЕЛЬТА | область | АРХАНГЕЛЬСКАЯ | [пустая строка] | город | МИРНЫЙ | улица | НЕКРАСОВА | ||||
ЕВРОПА | область | ВОРОНЕЖСКАЯ | ОСТРОГОЖСКИЙ | город | ОСТРОГОЖСК | переулок | ГОРОДСКОЙ | ||||
ГЕФЕСТ | край | КРАСНОДАРСКИЙ | [пустая строка] | город | КРАСНОДАР | улица | ГАГАРИНА | ||||
МАДРИД | край | СТАВРОПОЛЬСКИЙ | [пустая строка] | город | КИСЛОВОДСК | улица | ЛЕОНОВА | ||||
ММН | область | БРЯНСКАЯ | ДЯТЬКОВСКИЙ | город | ДЯТЬКОВО | улица | ВОКЗАЛЬНАЯ | ||||
НИКС | область | ВОРОНЕЖСКАЯ | КАЛАЧЕЕВСКИЙ | город | КАЛАЧ | площадь | ЛЕНИНА | ||||
ПАЛАДИН | область | ВОЛОГОДСКАЯ | ВОЛОГОДСКИЙ | город | ВОЛОГДА | переулок | ЦЕНТРАЛЬНЫЙ | ||||
РИСТ | столица | МОСКВА | [пустая строка] | город | МОСКВА | [пустая строка] | улица | КРАСНЫЙ МОСТ | 6а | ||
СОВИНТ | край | ХАБАРОВСКИЙ | ХАБАРОВСКИЙ | город | ХАБАРОВСК | улица | ЛУГОВАЯ | ||||
СУЛИКО | республика | АДЫГЕЯ | [пустая строка] | город | МАЙКОП | улица | ЮБИЛЕЙНАЯ | ||||
САНЛАЙТ | область | ВОРОНЕЖСКАЯ | РОССОШАНСКИЙ | город | РОССОШЬ | улица | БАГРАМЯНА | ||||
ТЕРРА | область | ЯРОСЛАВСКАЯ | [пустая строка] | город | ЯРОСЛАВЛЬ | переулок | ДРУЖНЫЙ | ||||
ТОМО | область | АСТРАХАНСКАЯ | [пустая строка] | город | АСТРАХАНЬ | улица | ПОБЕДЫ | ||||
УНИТАР | область | КАЛУЖСКАЯ | [пустая строка] | город | КАЛУГА | переулок | ЗАВОДСКОЙ |
12. Форма «Поставщик» создается аналогично форме «Покупатель». Для ее создания необходимо повторить все действия, описанные в пунктах 9 - 10.
13. Заполните таблицу «Поставщик» с помощью соответствующей формы недостающими данными, приведенными ниже в таблице «Поставщик» (данные для адреса).
14. (*) Создайте форму «АнализПродаж», результаты в которой представлены в виде Сводной таблицы и Сводной диаграммы:
14.1. Создайте запрос «АнализПродаж», содержащий поля:
· Продавец: [Фамилия] & " " & [Имя] & " " & [Отчество];
· Товар: [НазваниеТипа] & " " & [НазваниеМарки] & " " & [Артикул];
· Количество;
· ДатаСделки;
· Опт;
· [Покупатель].[НазваниеФирмы].
14.2. Создайте 2 формы на основе запроса «АнализПродаж»:
· Первая форма должна иметь вид Сводной таблицы и называться «АнализПродаж_подчиненная_форма_1». Для нее Полями фильтра является поле Продавец, Полями столбцов является поле Товар, Полями строк - поле НазваниеФирмы, Полями итогов - Количество, ДатаСделки, Опт.
· Вторая форма должна иметь вид Сводной диаграммы и называться «АнализПродаж_подчиненная_форма
_2». Для нее Полями фильтра является поле Продавец, Полями данных - Количество, Полями категорий - Товар, Полями рядов - НазваниеФирмы. Оси называются: ось категорий - Товары, ось значений - Количество.
14.3. Создайте пустую форму, поместите в нее подчиненую форму «АнализПродаж_подчиненная_форма_1» с помощью элемента управления Подчиненная форма/запрос.
14.4. Откажитесь от использования Мастера. Поместите на форму Кнопку. С помощью Окна свойств присвойте Кнопке Имя - ВидРезультата, Подпись - СводнаяДиаграмма, Нажатие кнопки - запустите построитель и выберите возможность написания программного модуля на VBA.
14.5. Напишите программный модуль по следующему алгоритму: если свойство Кнопки ВидРезультата SourceObject равно значению «АнализПродаж_подчиненная_форма_1», то изменить его на значение «АнализПродаж_подчиненная_форма_2» и свойству Caption присвоить значение «Сводная таблица», иначе свойству SourceObject присвоить значение «АнализПродаж_подчиненная_форма_1» и свойству Caption - значение «Сводная диаграмма». (Т.е. если результаты анализа продаж представлены в виде Сводной таблицы, то дать возможность пользователю с помощью Кнопки переключиться в режим Сводной диаграммы, и наоборот).
15. Создайте в режиме Конструктора форм формы для запросов «ЦеныНаТовары» и «СведенияОПоставщиках». Каждая из форм должна включать все поля соответствующего запроса и кнопку Выход.
16. Добавьте в формы «Товар», «Сделка», «Сотрудник», «Покупатель», «Поставщик» с помощью Мастера создания элементов управлениякнопки: ПерваяЗапись, ПоследняяЗапись, ПредыдущаяЗапись, СледующаяЗапись, ДобавитьЗапись, СохранитьЗапись, УдалитьЗапись, ВосстановитьЗапись и Выход. Для всех перечисленных форм в окне свойств формы задать соответствующие подписи форм в свойстве Подпись, отменить Область выделения, Кнопки перехода и Разделительные линии.
(Замечание: После выполнения команды УдалитьЗапись восстановить ее невозможно! Кнопка ВосстановитьЗапись позволяет восстановить не всю удаленную запись, а часть записи (значения в полях записи, кроме ключевых).)
Таблица «Поставщик» (данные для адреса)
Код Поставщика | Название Фирмы | Тип Региона | Регион | Район | Тип НП | НП | Индекс | Тип Улицы | Улица | Дом | Комната |
АНТЕН | область | ВОРОНЕЖСКАЯ | ПАВЛОВСКИЙ | город | ПАВЛОВСК | улица | ВОСТОЧНАЯ | ||||
АЛАН | область | БРЯНСКАЯ | [пустая строка] | город | БРЯНСК | улица | ЛЕСНАЯ | ||||
АРЛАН | область | КАЛИНИНГРАДСКАЯ | [пустая строка] | город | КАЛИНИНГРАД | [пустая строка] | улица | ЛЕСНАЯ | |||
АВТОФОР | область | ВОРОНЕЖСКАЯ | БОРИСОГЛЕБСКИЙ | город | БОРИСОГЛЕБСК | улица | БЕРЕЗОВАЯ | ||||
КОРОНА | область | ВОРОНЕЖСКАЯ | [пустая строка] | город | ВОРОНЕЖ | бульвар | ФЕСТИВАЛЬНЫЙ | ||||
ДЕКА | край | ПРИМОРСКИЙ | УССУРИЙСКИЙ | город | УССУРИЙСК | улица | ВИШНЕВАЯ | ||||
ЭКСИМЕР | край | КРАСНОЯРСКИЙ | [пустая строка] | город | ЖЕЛЕЗНОГОРСК | улица | ОКТЯБРЬСКАЯ | ||||
ФЕНИКС | республика | КАРЕЛИЯ | БЕЛОМОРСКИЙ | город | БЕЛОМОРСК | улица | НАБЕРЕЖНАЯ | ||||
ГИРЕВ | область | ИРКУТСКАЯ | БРАТСКИЙ | город | БРАТСК | [пустая строка] | улица | ЦЕНТРАЛЬНАЯ | |||
МОНОМАХ | область | ЧЕЛЯБИНСКАЯ | [пустая строка] | город | ЧЕЛЯБИНСК | улица | КУРГАННАЯ | ||||
ПАРТИЯ-1 | область | КОСТРОМСКАЯ | КОСТРОМСКОЙ | город | КОСТРОМА | улица | СВОБОДЫ | ||||
ВЕЛЕСС | край | АЛТАЙСКИЙ | [пустая строка] | город | БАРНАУЛ | улица | НОВИКОВА | ||||
ВЕСТА-С | область | ВОРОНЕЖСКАЯ | ПАВЛОВСКИЙ | город | ПАВЛОВСК | улица | ДРУЖБЫ |
17. (*) Задача: Необходимо реализовать обновление таблицы «Товар» после проведения сделки, т.е. значение в поле Количество таблицы «Товар» должно изменяться на количество проданных единиц соответствующего товара при проведении сделки. Также желательно помечать уже проведенные сделки.
Для решения поставленной задачи необходимо:
a. Создать запрос на обновление поля Количество таблицы «Товар», в котором условие отбора создать на НомерНакладной, задаваемый ссылкой на значение в поле НомерНакладной формы «Сделка». Сохранить запрос под именем «ПродажаТовара».
b. В форме «Сделка» создать поле с именем Выполнение. Свойство Данные этого поля оставить пустым, Размер шрифта - 16 пт, Насыщенность - жирный, Цвет текста - красный.
c. Создать макрос, включающий 2 макрокоманды: ОткрытьЗапрос (в аргументах макрокоманды указать имя запроса «ПродажаТовара») и ЗадатьЗначение (в аргументах макрокоманды указать Элемент - поле Выполнение формы «Сделка», Выражение - "!"). Сохранить макрос под именем «ПровестиСделку».
d. В форме «Сделка» создать кнопку «ПровестиСделку», которая запускает макрос «ПровестиСделку».
Контрольные вопросы
1. Из каких областей состоит форма в режиме Конструктора?
2. Какие элементы управления можно использовать при конструировании форм?
3. Для чего используется окно свойств объекта?
4. Каким образом можно создать элемент Кнопка, используя Мастер?
5. Кнопки для выполнения каких действий можно создать с помощью Мастера?