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


Лабораторная работа №5. Создание макросов



 

Цель работы

1. Ознакомиться с процессом создания макросов.

2. Освоить способы формирования условий в макросах и способы формирования групп макросов.

3. Ознакомиться со способами использования макросов в качестве обработчиков событий в формах и отчетах.

Задачи

1. Создание макроса.

2. Формирование условий, определяющих порядок выполнения макрокоманд.

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

4. При необходимости (зависит от варианта задания) создание группы макросов.

 

Методические указания

 

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

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

· до и после операции обновления значения поля;

· при любом изменении значения поля;

· при получении и потере фокуса ввода;

· при использовании мыши: щелчок, двойной щелчок, нажатие кнопки вниз, нажатие кнопки вверх;

· при использовании клавиатурных клавиш: нажатие клавиши, движение клавиши вниз, движение клавиши вверх.

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

В нижней части окна конструктора для каждой макрокоманды указываются ее аргументы, число и состав которых зависят от конкретной макрокоманды.

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

Макросы с условиями.

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

Если условие истинно, выполняется макрокоманда, находящаяся в той же строке, а также все идущие подряд макрокоманды, у которых в ячейках столбца «Условие» содержится многоточие (...). После этого выполняются макрокоманды, у которых ячейки столбца «Условие» являются пустыми.

Если условие ложно, то текущая макрокоманда игнорируется вместе со всеми следующими за ней макрокомандами, у которых в ячейках столбца «Условие» содержится многоточие, и совершается переход к ближайшей строке, в которой ячейка столбца «Условие» не заполнена.

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

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

 

Варианты заданий

 

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

 

2. Создайте группу « Группа макросов 2 » из макросов, обеспечивающих следующие возможности. После открытия существующей формы «фрм2: Просмотр запроса на выборку 2», она должна быть прижата к верхнему и левому краям рабочего окна Access. Если выполнить двойной щелчок мышью в одном из полей «ИнвентарныйНомер», «КодПодразделения», «КодМатОтв» этой формы, то должна открыться одна из таблиц «Инвентарные карточки ОС», «Подразделения предприятия», «Материально ответственные» соответственно, причем каждая из них должна автоматически закрыться не более, чем через 10 секунд после открытия. Двойной щелчок мышью на свободном месте формы должен открывать не более, чем на 10 секунд, запрос «Запрос на выборку 2» в режиме конструктора. Если закрыть форму «фрм2: Просмотр запроса на выборку 2», а какие-либо из таблиц или запрос еще не закрылись, то они также должны сразу закрыться.

 

3. Создайте вспомогательную форму «фрм: для группы макросов 3», содержащую 6 кнопок, расположенных в два ряда (2 кнопки в первом ряду и 4 – во втором). Нажатие на первую и вторую кнопки в первом ряду должно соответственно открывать и закрывать уже существующую форму «фрм3: Просмотр запроса на выборку 3» (при ее открытии должна быть полностью видна и вспомогательная форма). Четыре кнопки во втором ряду предназначены для навигации по набору данных, отображаемых посредством формы «фрм3: Просмотр запроса на выборку 3» (позиционирование на первую, предыдущую, следующую и последнюю строки соответственно). При этом открытие вспомогательной формы и функции, выполняемые ее кнопками, необходимо реализовать с помощью группы макросов с общим именем « Группа макросов 3 ».

Усложненный вариант. Устраните появление на экране сообщений, сигнализирующих о попытке переместиться на несуществующую строку (т.е. на строку перед первой или после последней).

 

4. Создайте макрос « Макрос 4 », реализующий следующие возможности. Если открыть уже существующую форму «фрм4: Подвиды ОС», выбрать в списке конкретный подвид ОС и нажать кнопку открытия вспомогательной формы, то должен быть проведен анализ: имеются или отсутствуют инвентарные карточки, отображаемые посредством этой формы. Если таких инвентарных карточек нет и вспомогательная форма отображает поля новой, пустой записи, то на экран нужно выдать соответствующее сообщение, после чего некоторые поля пустой записи следует заполнить данными. В частности, в поле «КодНормыАморт» нужно занести значение, соответствующее выбранному подвиду ОС, в поле «РежимИспользования» – значение «" В эксплуатации" », в поле «ДатаПоступления» – текущую дату.

 

5. Создайте форму на основе запроса «Параметрический запрос 2» и далее реализуйте с помощью макроса « Макрос 5 » операцию открытия этой формы и последующий анализ набора данных, отображаемых посредством формы. Если набор данных содержит хотя бы одну запись, то на экран должно быть выдано соответствующее сообщение. Если набор данных пуст, то вспомогательная форма должна закрыться и на экран должно быть выведено сообщение, что записи отсутствуют. В этом случае после закрытия пользователем окна с сообщением должна открыться таблица «Инвентарные карточки ОС» с отображением всех записей и позиционированием на строке ввода новой записи.

 

6. Создайте вспомогательную форму «фрм: для макроса 6» для ввода и редактирования данных в таблицу «Инвентарные карточки ОС», располагая поля ввода в столбец. Далее создайте группу « Группа макросов 6 » из трех макросов. Первый из них должен открывать сначала вспомогательную форму, а затем существующую форму «фрм6: Просмотр запроса с текстовым вычисляемым полем». Второй макрос должен обеспечивать следующее: если в форме «фрм6: Просмотр запроса с текстовым вычисляемым полем» перемещаться по записям с помощью кнопок навигации, то вспомогательная форма должна автоматически позиционироваться так, чтобы значения полей «КодМатОтв» в обеих формах были равны. Третий макрос при закрытии одной формы должен обеспечивать автоматическое закрытие другой формы.

 

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

 

8. Создайте параметрический запрос на выборку «Запрос для макроса 8», выводящий значения полей инвентарной карточки по указанному пользователем инвентарному номеру, после чего создайте форму «фрм: для макроса 8» на основе этого запроса. Далее создайте макрос « Макрос 8 », открывающий форму «фрм: для макроса 8» с табличным представлением данных. Если же инвентарной карточки с указанным номером не существует, то макрос должен закрыть форму «фрм: для макроса 8» и выдать на экран соответствующее сообщение. В этом случае после закрытия пользователем окна с сообщением должна открыться существующая форма «фрм8: Инвентарные карточки ОС» в режиме ввода новой записи, причем поле «РежимИспользования» уже должно содержать значение «" Сдано в аренду" », а поле «ДатаВыбытия» – текущую дату.

 

9. Создайте форму «фрм: для макроса 9», содержащую элемент управления типа поле со списком для просмотра всех имеющихся подвидов основных средств и выбора одного из них. Создайте макрос « Макрос 9 », который обеспечивает следующую возможность. Как только из списка будет выбран конкретный подвид ОС, то сразу же должна открыться уже существующая форма «фрм9: Ленточные инвентарные карточки», причем она должна отображать только те инвентарные карточки, код нормы амортизации которых совпадает с кодом нормы амортизации выбранного в списке подвида ОС. Если такие инвентарные карточки отсутствуют, то форма «фрм9: Ленточные инвентарные карточки» на экране не отображается, а вместо нее выводится сообщение об отсутствии инвентарных карточек.

 

10. Создайте группу « Группа макросов 10 » из четырех макросов, первый из которых открывает уже существующую основную форму «фрм10: Виды – Нормы амортизации», а остальные реализуют следующие возможности. Если выполнить двойной щелчок мышью в верхней или нижней части основной формы, то должна открыться вспомогательная, также существующая форма «фрм10: Табличные нормы амортизации». Если же выполнить двойной щелчок мышью в поле ввода «КодВидаОС» основной формы, то во вспомогательной форме должны отобразиться только те записи, для которых значение поля «КодВидаОС» совпадает с аналогичным значением в основной форме. При закрытии основной формы должна закрываться также и вспомогательная форма (если, конечно, она была перед этим открыта).

 

11. Создайте вспомогательную форму «фрм: для макроса 11», содержащую поле ввода и кнопку. Нажатие на кнопку должно запускать макрос « Макрос 11 », который открывает существующую форму «фрм11: Инвентарные карточки ОС» и позиционирует источник записей на строке, для которой значение поля «ДатаПоступления» совпадает со значением, установленным в поле ввода вспомогательной формы. Если же инвентарная карточка с такой датой поступления отсутствует, то форма «фрм11: Инвентарные карточки ОС» должна закрыться и на экран должно быть выведено соответствующее сообщение.

 

12. Создайте вспомогательную форму «фрм: для макроса 12», содержащую поле ввода и кнопку. Нажатие на кнопку должно запускать макрос « Макрос 12 », который открывает существующую форму «фрм12: Инвентарные карточки ОС» в табличном виде, причем в ней должны отображаться только те записи, для которых значение поля «КодГруппыОС» совпадает со значением, содержащимся в поле ввода вспомогательной формы. Если такие записи отсутствуют, то на экран должно быть выведено соответствующее сообщение.

 

13. Создайте группу « Группа макросов 13 » из трех макросов, первый из которых открывает существующую форму «фрм13: Инвентарные карточки ОС», а другие два обеспечивают следующие возможности. Если в указанной выше форме нажать кнопку Открыть, то должна открыться вспомогательная форма «фрм13: Материально ответственные» с позиционированием на новой, пустой записи. Если же выполнить двойной щелчок мышью в области данных вспомогательной формы, то должно выполниться позиционирование на записи, в которой значение поля «КодМатОтв» совпадает с аналогичным значением в форме «фрм13: Инвентарные карточки ОС».

 

14. Создайте форму «фрм: для группы макросов 14», содержащую 5 кнопок. Первая кнопка должна открывать все имеющиеся таблицы базы данных. Вторая и третья кнопки должны создавать на экране соответственно горизонтальную и вертикальную мозаику из окон. Четвертая кнопка должна располагать окна на экране каскадом. Пятая кнопка должна закрывать все открытые таблицы базы данных. Для выполнения всех этих операций создайте группу макросов с общим именем « Группа макросов 14 ».

Усложненный вариант. Добавьте в форму еще две кнопки, одна из которых сворачивает (минимизирует), а вторая – восстанавливает (в прежней позиции и размерах) окна всех открытых таблиц базы данных.

 

15. Создайте вспомогательные (одиночную и табличную) формы «фрм: для макроса 15 одиночная» и «фрм: для макроса 15 табличная», которые обе предназначены для ввода и редактирования данных в таблицу «Инвентарные карточки ОС» (табличный тип формы устанавливается с помощью окна свойств выбором вкладки «Макет» и строки «Режим по умолчанию»). Снабдите одиночную форму кнопкой с надписью Копировать. Далее создайте макрос « Макрос 15 », обеспечивающий следующие возможности: если в открытой одиночной форме с помощью кнопок навигации выбрать некоторую запись, после чего нажать кнопку Копировать, то в табличной форме должна быть создана копия записи, выбранной в одиночной форме, т.е. добавлена новая запись с идентичными значениями всех полей за исключением ключевого поля «ИнвентарныйНомер», которое должно заполняться вручную. Если при нажатии кнопки Копировать табличная форма была закрыта, то ее нужно открыть и только затем выполнить описанную выше операцию копирования.

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-11; Просмотров: 585; Нарушение авторского права страницы


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