Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Создание простого макроса , позволяющего выбирать из списка клиента для последующего создания отчета



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

ü Создайте отчет Клиенты с группировкой по фирме

 

ü Создайте новую форму ВЫБОР ФИРМЫ при помощи Конструктора, без использования источника данных

 

 

ü Создайте поле со списком , позволяющее выбирать название фирмы.(кнопку мастера не отключайте)

ü Измените имя поля со списком

· Выделите поле со списком

· Откройте окно Свойств

· Вкладка -- Другие

· Введите имя - Фирма

ü Создайте макрос ВЫБОР

· Щелчок правой клавишей по полю Фирма

· Откройте окно Свойств

· Вкладка События

· Строка Изменение

· кнопка … - Макросы

ü Выберите из списка макрокоманду Открыть Отчет

 

ü Введите аргументы макрокоманды

· Выберите имя отчета Клиенты

· Укажите режим Просмотр

· Условие отбора лучше создать при помощи построителя выражений

[КодКлиента]=[Forms]! [Выбор Фирмы]! [Фирма]

ü Выберите из списка макрокоманду Закрыть

ü Сохраните изменения

ü Откройте форму ВЫБОР ФИРМЫ и проверьте действие макроса ВЫБОР

 

Пример создания макроса архивации старых данных.

С течением времени в таблице Заказы скапливаются старые записи о заказах, которые не требуются для текущей работы. Периодически убирая старые и редко использующиеся данные в таблицу Старые Заказы увеличивается быстродействие основных частей БД.

ü Скопируйте таблицу Заказы с сохранением структуры (но не данных) в таблицу Старые Заказы

ü Откройте таблицу Старые Заказы в режиме Конструктора и добавить поле Стоимость (денежное поле)

ü Создайте запрос Добавление В Архив , используя таблицы Заказы, Компьютеры, Принтеры.

· При создании запроса используйте все поля из таблицы Заказы

· Создайте вычисляемое поле Стоимость

· Условие отбора записей укажите для поля Даты Заказа (например < Date( ) -30. )

ü Преобразуйте в запрос на добавление (меню ЗАПРОС )

 

 

 

· Проверьте выполнение запроса в режиме таблицы (Вид – Таблица), но не выполняйте запрос

ü После копирования устаревших данных их необходимо удалить из таблицы Заказы. Для этого необходимо создать запрос Удаление В Архив.

Пример Запроса на Удаление

 

Условие отбора должно совпадать с условием отбора для запроса Добавление В Архив.

ü Создайте макрос Архивация

Перейдите на вкладку Макросы и нажмитеь кнопку Создать и создайте следующий макрос

 

Макрокоманда Аргументы макрокоманды Примечание
Установить Сообщение Выключить сообщение: нет Выключение системных сообщений
Открыть Запрос имя: Добавление в Архив режим: Таблица режим данных: Изменение Выполнение запроса Добавление в Архив
Открыть Запрос имя: Удаление в Архив режим: Таблица режим данных: Изменение Выполнение запроса Удаление в Архив
Сообщение Сообщение: Архивация старых заказов выполнена Сигнал: да Тип: Отсутствует Заголовок: Архивация Создание сообщения о выполнение

ü Создайте на кнопочной форме кнопку, позволяющую выполнять архивацию старых заказов.

 

Пример макроса, позволяющего изменять кол-во компьютеров на складе, при заполнении формы ЗАКАЗ.

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

 

 

 

Данная форма создавалась на основе запроса, в который включались все поля из таблицы Заказы и поля НаскладеК, НаскладеП из таблиц Компьютеры, Принтеры соответственно, а также вычисляемое поле Стоимость. В дальнейшем поля НаскладеК, НаскладеП, , показывающие количество товара на складе, будут спрятаны с экрана

ü Откройте форму Заказ в режиме Конструктора

ü Перейдите на вкладку Макросы и создайте макрос Склад, позволяющий при вводе данных о количестве заказанных компьютеров в поле колК формы Заказ изменять количество компьютеров на складе (НаскладеК)в форме (таблице) Компьютеры.

 

Макрокоманда Аргументы Примечание
Открыть форму Имя формы: Компьютеры Условие отбора: [Код]=[Forms]! [Заказы]! [Код] Открывает форму так, чтобы была видна только запись выбранной модели
Задать значение Элемент: [На складеК] Выражение: Forms]! [Заказы]! [На складеК] - Forms]! [Заказы]! [колК] Изменяет количество компьютеров на складе
Обновление    
Закрыть Тип объекта: Форма Имя объекта: Компьютеры Сохранение: Да Закрыть форму Компьютеры с сохранением изменений

Сохраните макрос

ü Откройте форму ЗАКАЗ в режиме конструктора

ü Измените свойства поля КолК (количество заказываемых компьютеров)

· Команда СВОЙСТВА )

· Вкладка Данные

Значение по умолчанию
Условие на значение < НаскладеК
Сообщение об ошибке На складе нет требуемого количества

· Вкладка События

· В строке После Обновления подключите макрос СКЛАД

ü Перейдите в режим формы и проверьте правильность работы макроса

ü Попробуйте заказать больше компьютеров, чем есть на складе

ü Перейдите в режим Конструктора формы и отключите макрос СКЛАД

 

Групповые макросы

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

Каждому групповому макросу при его сохранении дается имя. Каждому простому макросу, входящему в состав группового также дается имя. Ссылка на простой макрос внутри группового дается в виде:

< имя группового макроса>.< имя простого макроса>

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-12; Просмотров: 674; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.013 с.)
Главная | Случайная страница | Обратная связь