Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Поиск записей с использованием макросов





Пусть нам нужно узнать цену оконных блоков. Для решения этой задачи разработаем макрос Поиск записи, который будет осуществлять в форме СТРМ_КОНСТР поиск в поле Н_СТРМ по образцу о_бл, а по окончании поиска будет копировать содержимое поля ЦЕНА в найденной записи в буфер обмена. Вид макроса Поиск записи в окне проектирования приведен на рис. 7.3.

 

Рис. 7.3

На рис 7.3 в колонке Примечание указаны только обязательные аргументы которые следует вводить в окне проектирования макроса. Значения остальных аргументов не вводятся.

Первая макрокоманда Открыть форму имеет обязательный аргумент Имя формы со значением СТРМ_КОНСТР ¾ это имя открываемой формы.

Вторая макрокоманда с обязательным аргументом Имя элемента со значением Н_СТРМ активизирует (выделяет) поле Н_СТРМ, в котором будет осуществляться поиск.

Третья макрокоманда НайтиЗапись. Обязательный аргумент этой макрокоманды Образец поиска имеет значение о_бл.

Четвертая макрокоманда с обязательным аргументом Имя элемента со значением ЦЕНА активизирует (выделяет) поле ЦЕНА в найденной записи.

Пятая макрокоманда Выполнить команду с обязательным аргументом Команда со значением Копировать копирует содержимое поля ЦЕНА в найденной записи в буфер обмена.

После выполнения макроса появляется форма СТРМ_КОНСТР с найденной текущей записью. Чтобы убедиться в том, что в буфере обмена находится скопированное значение поля ЦЕНА, щелкнем на этом поле и сотрем его значение клавишей [Delete]. Затем введем команду меню Правка / Вставить или, что тоже самое нажмем клавиши [Ctrl][V]. Стертая цифра из буфера обмена будет вновь вставлена на старое место (туда, где курсор).

 

Условия выполнения макроса

Задавая условия выполнения макрокоманды, можно управлять ее запуском и выполнением. Это позволяет, например, выводить на экран сообщение, когда происходит указанное событие.

Рассмотрим следующий пример. Пусть при вводе в форму СТРМ_КОНСТР новой записи или при редактировании существующей нужно выдать сообщение "Подготовить прицеп", если габарит равен 1-2-3.

· В окне базы данных щелкнем на закладке макросы, а затем на кнопке Создать. Появится окно проектирования макроса.

· Введем команду меню Вид / Условия. В окне проектирования макроса появится колонка Условия.

· В первую строку колонки Условия введем следующее выражение:

· ГАБАРИТ="1-2-3"

· В этой же строке в колонке Макрокоманда введем макрокоманду Сообщение со следующими аргументами: Сообщение - Подготовить прицеп; Сигнал -Да; Тип-Информационное.

· Сохраним макрос под именем под именем Сообщение.

Вид макроса Сообщение показан на рис. 7.4.

Если имя анализируемого условием поля содержит символ пробела или знаки препинания, то его следует заключить в квадратные скобки. Хотя мы не заключали слова ГАБАРИТ в квадратные скобки, Access это сделал автоматически.

Рассмотрим аргументы макрокоманды Сообщение. Значение аргумента Сообщение - это произвольный текст, который вводится разработчиком макроса с клавиатуры и должен появится в окне сообщения. Аргумент Сигнал может принимать два значения Да / Нет. Он разрешает или запрещает подачу короткого звукового сигнала в момент выполнения условия. Аргумент Тип может принимать ряд значений определяющих оформление окна сообщения.

 

Рис. 7.4

В соответствии с нашей задачей нужно связать выполнение макроса Сообщение в момент наступления события ¾ изменения содержимого поля ГАБАРИТ. Для этого следует:

· Открыть форму СТРМ_КОНСТР в режиме конструктора.

· Щелкнуть мышью на поле ГАБАРИТ.

· Открыть окно свойств выделенного поля командой меню Вид / Свойства.

· Щелкнуть мышью на закладке События. Найти среди свойств поля ГАБАРИТ событие После обновления и щелкнуть мышью правее его в поле ввода. Появится значок выпадающего списка. Откройте его и выберете имя нашего макроса Сообщение. Таким образом, с событием изменения содержимого поля связывается макрос.

· Закройте окно свойств формы.

Проверим макрос в работе. Для этого перейдем в режим заполнения формы СТРМ_КОНСТР и введем новую запись, или изменим содержимое поля ГАБАРИТ так, чтобы в этом поле стало значение 1-2-3. Сообщение появится сразу после того, как вы завершите ввод габарита и нажмете клавишу [Tab] или [Enter]. Вид информационного окна с сообщением показан на рис. 7.5.

Рис. 7.5

В рассмотренном примере в случае выполнения условия нужно было выполнить только одну макрокоманду. В следующем примере в случае выполнения условия нужно выполнить две команды. Пусть с помощью формы СТРМ_КОНСТР необходимо запретить закупку складом слишком дорогих стройматериалов. Для этого, в случае если значение поля ЦЕНА > 300, нужно выдать сообщение Слишком дорого! и отменить введенную запись. Порядок решения этой задачи следующий:

· Откройте окно проектирования макроса с колонкой условий.

· В первое поле колонки условий введите условие: ЦЕНА>300.

· В колонку Макрокоманда введите макрокоманду Сообщение. Аргументу Сообщение присвойте значение Слишком дорого! Аргументу Тип присвойте значение Критическое.

· Во вторую строку колонки условий введите многоточие (нажмите без пробелов клавишу с точкой три раза).

· Во вторую строку колонки Макрокоманда введите макрокоманду Выполнить команду со значениями аргумента Отменить.

· Сохраните макрос командой Файл / Сохранить под именем Управление вводом. Вид этого макроса показан на рис. 7.6.

Откройте форму СТРМ_КОНСТР в режиме конструктора, щелкните правой кнопкой мыши по пустому (темному) участку формы и вызовите окно свойств формы. Свяжите выполнение макроса Управление вводом с событием После обновления формы. Проверьте работу макроса. После ввода всей записи, в которой цена стройматериала больше указанного значения, появляется окно сообщения: Слишком дорого!. Нажмем кнопку ОК в окне сообщения. Убедимся, что ввод в последнюю запись отменен (в поле ЦЕНА появилось прежнее значение).

Рис. 7.6

 

Контрольные вопросы

1. Как создать макрос для открытия объектов?

2. Как ввести в макрос следующую макрокоманду?

3. Как вставить в готовый макрос новые макрокоманды?

4. Как удалить или поменять местами макрокоманды?

5. Как обеспечит размещение на экране размещение открытых объектов рядом?

6. Как ввести аргументы макрокоманды?

7. Как выполнить макрос?

8. Как связать макрос с кнопкой?

 







Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.