Способы выполнения макрокоманд. Создание автоматически выполняемых макрокоманд. Назначение макроса событию

Вайбер на компьютер 22.06.2020
Вайбер на компьютер

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

Например, макрокомандой можно открыть форму, отчет, напечатать отчет, запустить на выполнение запрос, применить фильтр, присвоить значение, создать свое меню для формы или отчета. Макрокоманда ЗадатьКомандуМеню позволяет выполнить любую заданную команду меню. Имеющийся в Access набор макрокоманд реализует практически любые действия, которые необходимы для решения задачи.

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

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

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

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

Конструирование макроса

Создание макросов осуществляется в диалоговом режиме и сводится к записи в окне макроса последовательности макрокоманд, для которых задаются параметры. Каждому макросу присваивается имя. При выполнении макроса макрокоманды выполняются последовательно в порядке их расположения. При этом используются объекты или данные, указанные в аргументах макрокоманд. Имеется возможность определить условия выполнения макрокоманды.

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

Формирование макрокоманд в окне макроса

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

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

После ввода всех макрокоманд в макрос его надо сохранить, воспользовавшись командой меню Файл/Сохранить или кнопкой панели инструментов макроса.

Для выполнения макроса можно нажать кнопку панели инструментов Запуск . Если макрос уже закрыт, то для его выполнения надо в окне базы данных выбрать макрос и нажать кнопку Запуск в этом окне. Таким образом, по инициативе пользователя задача может решаться многократно.

Для просмотра и редактирования существующего макроса надо выбрать его в окне базы данных и нажать кнопку Конструктор .

Пример разработки макроса

Пусть необходимо рассчитать количество студентов в группах и внести эти данные в поле КОЛ таблицы ГРУППА . Подсчет количества студентов реализован запросом Число студентов в группе . Обновление поля КОЛ на основе полученных в этом запросе данных выполняет запрос Обновление ГРУППА_КОЛ . Последовательное выполнение этих запросов решает поставленную задачу.

  1. Сначала создадим запрос на обновление.
    Оформим окно конструктора запроса как показано на рисунке:

В схему данных запроса добавлены таблица Группа и таблица Число студентов , полученная после выполнения запроса на создание Число студентов в группе .

  1. Преобразуем запрос на выборку в запрос на обновление. Для этого выполним команду меню Запрос/Обновление . В строке Обновление введем имя поля таблицы Число студентов , из которой выбираются значения для обновления.
    Сохраним запрос на обновление под именем Обновление ГРУППА_КОЛ .
  2. Создадим макрос, состоящий из макрокоманд, показанных в окне конструктора:

В столбце Примечания записаны комментарии к макрокомандам. В зависимости от выбранной макрокоманды меняется нижняя часть окна конструктора — Аргументы макрокоманды . На рисунке активна макрокоманда СдвигРазмера , которая устанавливает положение и размеры окна таблицы Группа , демонстрируемого после ее обновления.

Сохраним макрос под именем Расчет количества студентов в группах . После нажатия кнопки Запуск получим результаты выполнения макроса, показанные на рисунке.

Поверх окна Группа выводится сообщение, в соответствии с последней макрокомандой.

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

  1. Чем отличаются макросы в Access от макросов в Word и Excel?
  2. Как организовать запуск макроса по некоторому событию?
  3. В чем сходство и различие между макросами и модулями в Access?
  4. Как получить справку о той или иной макрокоманде?
  5. Вывод каких сообщений в рассмотренном примере отключает макрокоманда ВыводНаЭкран?
Макрокоманда Назначение
ОткрытьФорму Может открыть форму в режиме предварительного просмотра. Возможно применить фильтр и задать условия отбора
ОткрытьЗапрос Может открыть запрос в режиме предварительного просмотра
ОткрытьТаблицу Может открыть таблицу в режиме предварительного просмотра.
ВывестиВформате Выводит заданную таблицу, запрос, форму, отчет или модуль в файл в формате XLS, RTF или TXT, а также запускает соответствующее приложение для редактирования файла.
Печать Выполняет печать активной таблицы, формы или отчета. Можно задать диапазон печатаемых страниц, число копий и необходимость раскладки копий
КомандаМеню Выполняет команду главного меню Access
Выход Закрывает все окна и осуществляет выход из Access
ЗапускМакроса Запускает другой макрос
ОстановитьВсеМакросы Останавливает работу всех макросов, включая макрос, который запустил этот макрос
Добавить меню Добавляет в строке пользовательского меню раскрывающееся меню для формы или отчета. В аргументах данной макрокоманды указывается имя строки меню и имя другого макроса, который содержит все используемые в меню команды и все действия, соответствующие этим командам
КомандаМеню Выполняет команду одного из главных меню Access. Используя эту макрокоманду внутри строки пользовательского меню, можно выполнить в пользовательском меню имеющиеся в нем команды.
КомандыКлавиатуры Запоминает последовательность нажимаемых клавиш
ЗадатьЗначение Изменяет значение любого элемента управления или свойства, которое можно обновить
Сигнал Выдает звуковой сигнал
Сообщение Выводит предупреждающее или информационное сообщение
Установить Сообщения Когда она включена, клавиша Enter назначается как клавиша ответной реакции на все системные предупреждающие или информационные сообщения при работе макроса. Чтобы отменить вывод сообщений, надо использовать эту команду вместе с макрокомандой ВыводНаЭкран, установленной в состояние "Нет" (Off)
Вывести на экран Выводит на экран информацию о промежуточных действиях, выполняемых при работе макроса
Развернуть Увеличивает размер активного окна до полного размера
Свернуть Сворачивает активное окно в значок
СдвигРазмер Изменяет размер активного окна
Восстановить Восстанавливает окно в прежних размерах

Для работы с макросами в панели инструментов предназначены следующие кнопки (рис. 9.1.):

Кнопка Имена макросов (с изображением «XYZ») отображает или убирает столбец “Имя макроса” , где можно присваивать имена макросам, входящим в группу;

Кнопка Условия (с изображением блок-схемы) отображает или убирает столбец “Условие” в окне макроса, где можно задать условие, с которым связано какое-то действие;

Кнопка Выполнить (с изображением «!») запускает макрос;

Кнопка По шагам (с изображением стрелки и списка) выполняет макрос по шагам;

Для обслуживания некоторого объекта, входящего в базу данных, создается подчас многочисленная совокупность макросов, каждый из которых автоматизирует некоторую вполне конкретную процедуру. Рекомендуется все макросы, связанные с событиями в форме или отчету, объединить в отдельный объект (группу), соответствующий данной форме или отчету. Каждый макрос должен иметь уникальное имя в пределах группы. Имя объекта Макрос будет являться именем группы. Вызов макрокоманды из макрогруппы осуществляется точным указанием имени макрогруппы и макрокоманды в группе: имяГруппы.имяМакроса.

Порядок выполнения макрокоманд в макросе может быть изменен. Для этого в макросе вводятся условия выполнения или пропуска макрокоманд. Условия задаются в виде выражения в столбце Условие.

Ссылка на форму или отчет состоит из двух частей: имяСемейства!имяОбъекта. Все открытые формы входят в семейство Формы, открытые отчеты – в семейство Отчеты. Например, Формы![Заказы клиента] или Формы!Клиент; ссылка на отчет – Отчеты![Отчет о продажах]. Если имя объекта содержит пробелы или специальные символы, оно обязательно должно быть заключено в квадратные скобки. Ссылка на свойство формы или отчета состоит из трех частей: имяСемейства!имяОбъекта.имяСвойства. Например: Формы!Клиент.Вывод на экран.

имяСемейства!имяОбъекта!имяЭлемента (например, Формы![Заказы клиента]! [Номер клиента]);

имяСемейства!имяОбъекта!имяЭлемента.имяСвойства (например, Формы![Заказы клиента]! [Доступ]).

Задание

1. Создайте макрос, содержащий макрокоманду ОткрытьФорму. Форма должна открываться с помощью кнопки, расположенной в другой форме.

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

3. Создайте макрос с условиями.

Порядок выполнения работы

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

1. В окне Базы данных щелкните по вкладке Макросы и нажмите на кнопку Создать . Откроется окно проектирования макроса аналогичное окну, приведенному на рис. 9.1. (будут отсутствовать столбцы Имя макроса и Условие ). Каждая строка в этом окне может содержать одну макрокоманду и комментарий к ней.

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

3. Желательно ввести пояснения в столбец Примечание . Комментарии облегчают понимание и сопровождение макросов.

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

5. Сохраните макрос. Для этого можно воспользоваться кнопкой Сохранить , либо выполните команду ФАЙЛ/Сохранить . Присвойте имя макросу (имя должно нести смысловую нагрузку).

6. Запустите макрос на исполнение.

Вызвать и выполнить макрос можно одним из нескольких способов:

В режиме проектирования макроса (см. рис. 9.1.) щелкнуть по кнопке Выполнить ;

Выполнить команду СЕРВИС/Запуск макроса и выбрать из списка имя макроса для выполнения;

В окне Базы данных на вкладке Макросы выполнить двойной щелчок на имени подлежащего выполнению макроса.

7. Откройте в режиме Конструктора какую-либо форму, отличную от формы, для которой разрабатывается макрос.

8. Создайте кнопку, разместив его в области заголовка открытой формы. Откройте окно свойств кнопки (рис. 9.2): выделите кнопку, нажмите правую кнопку мыши, в появившемся меню выберите пункт Свойства (открыть окно свойств можно, дважды щелкнув по кнопке). В окне свойств укажите, с каким событием связывается макрос. По умолчанию это событие Нажатие кнопки .

Создание групп макросов

Объедините макросы в макрогруппу (можно сделать новый объект или преобразовать ранее созданный макрос в группу макросов).

1. Откройте Конструктор макросов .

2. Нажмите кнопку Имена макросов на панели инструментов. В окне Конструктора макросов появится еще один столбец Имя макроса .

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

4. Пропустите строчку.

5. Введите имя следующего макроса и соответствующие ему макрокоманды. На рис. 9.3, в качестве примера, представлен макрос “Поставщики” БД “Борей”.

6. Проверьте работу макроса. Выполните команду СЕРВИС/Запуск макроса (будет выполнен только первый макрос из макрогруппы). Вызов других макросов из группы возможен, если в диалоговом окне ввести имя макрогруппы и через точку имя макроса.

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

Создание макроса с условием

Для примера на рис. 9.4 представлено окно проектирования макроса, который будет выводить на экран таблицу о товарах, находящихся на складе фирмы. Таблица “Товары на складе” будет открываться лишь тогда, когда в поле Цена формы будет внесено значение, меньше 1000. Макрос связан с элементом управления Цена в форме “Товары, проданные со склада” . Подключение этого макроса к элементу управления Цена происходит также, как и подключение макроса кнопки. Макрос будет связываться либо с событием Выход , либо с событием Вход .

1. Откройте Конструктор макросов .

2. Нажмите кнопку Условие. Запишите в столбце Условие выражение, при истинности которого будет выполняться создаваемый макрос. Выражения для условия удобнее задавать в окне Построитель выражений .

3. Задайте макрокоманду.

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

5. Откройте в режиме Конструктора форму, в которой предполагается один из элементов управления связать с разрабатываемым макросом. Свяжите элемент управления и макрос.

6. Проверьте работу макроса.

Приложение 1

Статистические функции

Функция Описание
Sum Вычисляет сумму всех значений заданного поля в каждой группе. Используется только для числовых и денежных поле.
Avg Вычисляет среднее арифметическое всех значений заданного поля в каждой группе. Используется только для числовых и денежных поле. Значения Null не включаются в вычисления.
Min (Max) Возвращает наименьшее (наибольшее) значение, найденное в заданном числовом поле внутри каждой группы. Для текстовых полей - наименьшее из символьных значений независимо от регистра. Значения Null игнорируется.
Count Возвращает число записей, в которых значения данного поля отличны от Null. Для учета значений Null используется Count(*)
StDev* Вычисляет смещенное статистическое стандартное отклонение для всех значений данного поля в каждой группе. Применяется к числовым и денежным полям. Если в группе меньше двух строк, возвращает значение Null.
StDevP* Вычисляет несмещенное статистическое стандартное отклонение
Var* Вычисляет смещенную статистическую дисперсию для всех значений данного поля в каждой группе. Применяется к числовым и денежным полям. Если в группе меньше двух строк, возвращает значение Null.
VarP* Вычисляет несмещенную статистическую дисперсию
First* Возвращает первое значение в заданном поле.
Last* Возвращает последнее значение в заданном поле.

Примечание: функции, отмеченные *, в Мастере запросов не применяются.


Приложение 2

Построитель выражений

Построитель выражений – средство построения сложных выражений. Структура окна Построителя выражений представлена на рис. П.2.1.

Текстовое поле для ввода выражения

Выражение – совокупность операторов и операндов (константы, идентификаторы и функций).

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

Идентификаторами являются имена констант и переменных, применяемые в программах на языке Visual Basic для приложений, а также именованные константы True, False, Yes, No, Null.

Функции – возвращают в выражение значение вместо имени функции. Большинство функций требует заключать в скобки свои аргументы. Пример функции с пустым списком аргументов: Date () – возвращает текущую дату.

Для создания выражений существует шесть категорий операторов, которые представлены в таблице П. 2.1

Таблица П. 2.1

Операторы для создания выражений

Категория операторов Оператор Пример Описание
Арифметические операторы + [Итог]+[Надбавка] Складывает два операнда
- Date() – 7 Считает разность двух операндов
* [Коробок]*[Цена] Перемножает два операнда
/ [Количество] / 5.33 Делит один операнд на другой
\ [Количество] \ 2 Делит один целый операнд на другой нацело. При этом операнды с десятичными дробями округляются до целого
Mod [Коробок] Mod 3 Возвращает остаток отделения нацело
^ [А] ^ [b] Возводит операнд А в степень b
Операторы сравнивания 1 < 1 < 100 Меньше
<= [a] <= 2 Меньше либо равно
= [b] = 3 Равно
> [a] > 2 Больше
>= [b] >= 3 Больше либо равно
<> 1<>100 Неравно
Логические операторы 2 And [A] And [B] Конъюнкция (логическое И)
Or [A] Or [B] Дизъюнкция (логическое Или)
Not Not [A] Логическое отрицание
Xor [A] Xor [B] Исключающее ИЛИ
Eqv [A] Eqv [B] Логическая эквивалентность
Imp [A] Imp [B] Логическая импликация
Операторы конкатенации + “Visual “+”Basic” Объединение двух текстовых
& “Visual “ & ”Basic” значений в единую строку. Оба операнда эквивалентны, но & - предпочтительнее
Продолжение таблицы П.2.1
Операторы идентификации ! КлассОбъекта! ИмяОбъекта Разделитель в ссылках на объекты
. ИмяОбъекта.Метод Разделитель в ссылках на методы и свойства объектов
Операторы сравнения с образцом Between Between(-100) And (100) Определяет, находится ли числовое значение в определенном диапазоне
Is [Имя] Is Null Используется только для сравнения со значением. В примере выражение принимает истинное значение, когда в поле Имя нет никаких данных.
In In (“Москва”, ”Киев”, ”Мурманск”) Определяет, является ли строковое значение элементом списка значений
Like Like “Ив*” Like “db??” Определяет, начинается ли строковое значение с указанных символов (символ “*” замещает любое число знаков, “?” – замещает только один знак)

Примечания:

1. Результат применения операторов сравнения – True или False. Если один из операндов имеет значение Null (пустое значение), то любое сравнение возвращает значение Null.

2. Результат применения логических операторов – True или False. Операнды имеют значение из множества (True, False, Null). Для всех логических операторов, кроме Imp, значение одного из операндов Null приводит к значению результата Null.

Элементы выражения вводятся в текстовом поле Построителя выражений. Наиболее употребительные операторы представлены кнопками в средней части окна. Элементы выражений можно выбирать из списков объектов, функций, констант, операторов и общих выражений.

Чтобы скопировать элементы выражения из списков, сначала щелкните на одной из папок в левой панели. Некоторые папки имеют дочерние папки, которые также раскрываются двойным щелчком. Список элементов, соответствующий открытой папке, отображается в правой панели.

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

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


Приложение 3

Кнопки панели элементов ACCESS

Кнопка Название кнопки Функция
Выбор объекта Превращает указатель мыши в инструмент выборки объектов
Мастера Включает и отключает мастеров создания элементов управления
Надпись Текст заголовков, подписей или пояснений, этот текст остается неизменным
Поле Создает поле для отображения и редактирования текстовых данных
Группа Создает рамку для размещения выключателей, переключателей, флажков. Одновременно может быть выбран только один из объектов, помещенных в рамку. Каждому элементу рамки соответствует уникальное число
Выключатель Переключатель Флажок Выключатель, переключатель, флажок, не включенные в группу, определяют значение логического типа Да (Yes) или Нет (Nо) , до- пускается использовать Истина (True) или любое положительное число, Ложь (False) или ноль
Поле со списком Создает поле со списком, содержащее поле для ввода значения, и список, в котором можно выбрать значение из набора значений
Список Создает раскрывающийся список для выборки значений
Кнопка Создает кнопку, после щелчка на которой запускается процедура обработки событий Access VBA
Рисунок Добавляет в форму или отчет точечный рисунок. Рисунок не относится к числу объектов OLE, после размещения в форме его изменение невозможно
Свободная рамка Добавляет в форму или отчет объект OLE
Присоединенная рамка Отображает содержимое поля OLE записи, если в поле имеется графический объект, иначе отображается значок объекта
Продолжение прил. 3
Разрыв страницы При печати формы или отчета заставляет принтер начинать новую страницу в месте разрыва страницы. В режиме просмотра формы или отчета разрыв не отображается
Набор вкладок Вставляет набор вкладок для создания формы, разделенной вкладками.
Подчиненные форма/отчет Добавляет подчиненные форму/отчет в главную форму/отчет
Линия Прямоугольник Применяются для разделения формы на логические группы для имитации рамок, границ. Цвет, ширину линий, заливку прямоугольника устанавливают с помощью панели инструментов форматирования
Дополнительные элементы

Приложение 4

Список контрольных вопросов

1. Каков порядок определения структуры БД в СУБД ACCESS?

2. В каком режиме описывается структура таблицы БД?

3. Дайте определения терминам: “объект”, “свойство”, “метод”, “событие”.

4. Какие типы объектов можно увидеть в окне БД ACCESS?

5. Какое расширение принято для файлов БД?

6. Можно ли изменить структуру таблицы после ее создания?

7. Какие типы полей БД предусмотрены в ACCESS?

8. Каковы правила именования полей БД?

9. Какая информация может храниться в полях типа "объект OLE"?

10. Какие свойства поля должны быть определены обязательно?

11. Поясните назначение первичного ключа в реляционной БД. Какие ограничения накладываются на значения первичного ключа?

12. Поясните назначение индексов.

13. Можно ли создать индекс по части поля? Если “да”, то как это сделать?

14. Какие виды контроля данных могут автоматически выполняться в СУБД ACCESS?

15. Для чего необходимо описывать связи между таблицами базы данных?

16. В каком режиме следует описывать связи между таблицами?

17. Какие типы связей поддерживает СУБД ACCESS?

18. Какое влияние оказывает установка связей на ввод и изменение информации в БД?

19. В чем состоят задачи ввода и коррекции данных в БД?

20. Какие типичные операции включает задача коррекции данных?

21. Какие приемы контроля данных имеются в ACCESS?

22. Когда производится проверка данных?

23. Как добавить в таблицу новую запись?

24. Как удалить запись из таблицы?

25. Можно ли восстановить удаленную из БД информацию?

26. Как найти в таблице нужное значение?

27. Как заменить во всех записях БД название фирмы ТОО "Заря" на АО "Рассвет"?

28. Что такое шаблон поиска, какие символы и для чего применяют в шаблоне?

29. С какой целью и как производится сортировка записей БД?

30. Как ведут себя данные в других полях таблицы при сортировке по полю "Фирма" ?

31. Как отменить сортировку данных?

32. Что такое запрос и какие типы запросов поддерживает в ACCESS?

33. Как задать параметры при создании запроса-выборки с параметрами?

34. Что такое агрегированные (групповые) операции и как они применяются в запросах?

35. Как определить из каких таблиц взяты поля в шаблон вывода при конструировании запроса?

36. Что такое перекрестный запрос и как он конструируется?

37. К какому классу языков относится SQL? Как язык SQL используется при формировании запросов?

38. Какова структура запроса на языке SQL, содержащего подзапросы?

39. Можно ли передать параметры в запрос из некоторой формы, если можно, то как это сделать?

40. Можно ли вводить данные в таблицы через запросы, если можно, то в каких случаях, каковы ограничения, накладываемые на взаимосвязанные таблицы, на ввод данных в через запросы в таблицы?

41. Что такое поля группировки, можно использовать одновременно несколько полей группировки в одном запросе и каков смысл получаемого результата?

42. Что представляет из себя запрос на создание таблицы, как он работает, какую таблицу можно создать?

43. Как конструируются запросы на изменение в таблицах БД? Можно ли в одном запросе включать изменения в нескольких таблицах?

44. Что такое запросы на удаление, как они конструируются? Для чего могут быть использованы запросы на удаление? Могут ли быть запросы данного типа с параметрами.?

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

46. Могут ли вычисляемые поля участвовать в формировании условия отбора в запросе?

48. Что такое видимые или выводимые и невидимые или невыводимые поля запроса? Зачем нужны невидимые поля запроса?

49. Как в построителе выражений можно увидеть поля конкретной таблицы, поля данного запроса? Почему при конструировании запроса не все поля видны в построителе выражений?

50. Сколько баз данных может быть открыто одновременно?

51. Какие свойства имеет объект “таблица”?

52. Назначение объекта “форма”. Какие свойства имеет объект “форма”?

53. Позволяет ли ACCESS создавать многоэкранные формы?

54. Можно ли пользоваться одной и той же экранной формой для ввода информации в разные файлы БД?

55. Как внедрить в форму подчиненную форму?

56. Назначение объекта “отчет”. Какие свойства имеет объект “отчет”?

57. Можно ли получить отчет, содержащий только итоговые строки? Если “Да”, то как?

58. Можно ли изменять длину и формат поля в выходном документе по сравнению с тем, который был задан в файле БД?

59. Что такое макрос? Назначение макросов.

60. Какие режимы допускает окно БД для таблиц, запросов и форм? Чем они отличаются от допустимых режимов для макросов?

61. Как выявить ошибки в работе макроса?

62. Можно ли в ACCESS использовать данные, которые хранятся в других форматах?

63. Как создать таблицу путем импорта данных из рабочего листа EXCEL?

Из этой лекции вы узнаете следующее:

  • для чего нужны макросы;
  • как создать и использовать макрос;
  • как экспортировать и импортировать макросы;
  • как обеспечить безопасность при работе с макросами.

9.1. Что такое макросы и зачем они нужны

У каждого опытного пользователя интерфейс Microsoft Word уникальный и изменяется в зависимости от того, какие инструменты ему необходимы в работе. Вы вряд ли увидите одинаковые панели инструментов или пункты главного меню - чтобы сделать работу наиболее удобной, каждый пользователь стремится настроить программу по-своему. Однако иногда изменения только интерфейса (вынесение основных команд на панель инструментов и создание пользовательских меню ) недостаточно.

Если работа однообразная, то пользователю приходится часто повторять те или иные команды в определенной последовательности (например, оформлять текст курсивом, кеглем 10, гарнитурой Arial). Чтобы произвести такое небольшое форматирование , может понадобиться достаточно большое количество времени, особенно если таким образом необходимо выделить несколько десятков слов. Получается, что для каждого участка нужно проделывать несколько операций. Конечно, можно отформатировать только один участок и создать пользовательский стиль, но и это не самый быстрый способ применения оформления.

Если вам часто приходится выполнять одни и те же действия, то эффективность вашей работы можно заметно увеличить при помощи макросов. Макросы - это небольшие программы на языке Visual Basic . Они могут помочь не только в ситуациях, когда требуется много раз выполнить сложное форматирование , но и при вставке объектов, печати выделенного текста и в других случаях.

Макросы всегда выполняются в активном документе. Действие некоторых макросов зависит от позиции вставки. Другие могут обращаться только к определенному объекту (например, к абзацу или выделенному участку текста). В данном случае перед выполнением макроса нужно выбрать этот элемент. Если же макрос не обращается к определенному объекту (например, выполняет команду перехода к следующему окну), то его можно выполнить в любое время.

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

Внешний макрос можно применять в случае, если он полезен при работе с документами, созданными на основе разных шаблонов. Если вы пользуетесь большим количеством шаблонов, то вносить в каждый из них макрос будет неудобно, как придется делать при использовании внутреннего макроса. Внешний же макрос можно применять для работы с любыми документами, а также свободно переносить с компьютера на компьютер . Для создания внешнего макроса его нужно сохранить с расширением BAS .

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

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

Назначение макроса кнопке

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


Назначение макроса клавишам

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


Запись макроса

Когда подготовительная работа будет завершена, переходите к записи макроса. После того как вы закроете окна назначения макроса панели инструментов или клавишам, указатель мыши примет форму. Теперь можно выполнять необходимые действия.

Упражнение 9.1. Запись макроса

Создадим макрос, с помощью которого можно щелчком мышью применить к выделенному участку текста гарнитуру Arial, полужирное начертание и размер шрифта 10.

Когда появится панель записи макроса, сделайте следующее.


Теперь можно проверить его действие. Откройте любой документ, выделите требуемый участок и вызовите макрос с помощью кнопки на панели быстрого запуска или сочетания клавиш. Вы увидите, что форматировать текст, используя макрос, гораздо удобнее, чем каким-либо другим способом.

1. Понятие макроса.

2. Обзор событий

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

3.1. Задание условий выполнения макрокоманд.

3.2. Создание группы макросов.

4. Запуск макроса.

1. Понятие макроса

Для автоматизации операций в СУБД MS Access предусмотрены два средства: макросы и модули . С помощью данных средств представляется возможность определить реакцию приложения на различные события, возникающие в формах и отчетах: нажатие кнопки, получение элементом управления фокуса, переход на новую запись, изменение данных, открытие формы, открытие отчета и т. п.

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

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

Макрокоманды по функциональному признаку можно разделить на несколько категорий:

– работа с данными в формах и отчетах;

– выполнение команд, макросов, процедур и запросов;

– работа с объектами;

– импорт/экспорт данных и объектов;

– прочие.

В таблице 11.1 представлены 56 макрокоманд СУБД MS Access, сгруппированных по категориям.

Таблица 11.1

Назначение

Макрокоманда

Работа с данными в формах и отчетах

Отбор данных

ПрименитьФильтр (ApplyFilter)

Перемещение по данным

СледующаяЗапись (FindNext).

НайтиЗапись (FindRecord),

КЭлементуУправления

НаСтраницу (GoToPage),

НаЗапись (GoToRecord)

Обновление данных или экрана

Обновление (Requery)

ПоказатьВсеЗаписи (ShowAllRecords)

Выполнение

Выполнение команды

ВыполнитьКоманду (RunCommand)

Выполнение макроса, процедуры или запроса

ЗапускПрограммы (RunCode), ЗапускМакроса (RunМасго), ОткрытьЗапрос (OpenQuery), ЗапускЗапросаSQL (RunSQL)

Выполнение другого приложения

ЗапускПриложения (RunApp)

Прерывание выполнения

ОтменитьСобытие (CancelEvent),

ОстановитьВсеМакросы (StopAIIMacros),

ОстановитьМакрос (Stop Macro)

Выход из Microsoft Access

Выход (Quit)

Импорт/
экспорт

Передача объектов Microsoft Access в другие приложения

ВывестиВФормате (OutputTo),

ОтправитьОбъект (SendObiect)

Преобразование формата данных

ПреобразоватьБазуДанных (TransferDatabase), ПреобразоватьЭлектроннуюТаблицу (TransferSpreadsheet)

ПреобразоватьТекст (TransferText)

Работа с oбъeктaми

Копирование, переименование или сохранение объекта

КопироватьОбъект (CopyObject), Переименовать (Rename),

КопироватьФайлБазыДанных
(CopyDatabaseFile)

Удаление объекта

УдалитьОбъект (DeleteObject)

Изменение размеров или положения окна

Развернуть (Maximize),

Свернуть (Minimize),

СдвигРазмер (MoveSize),

Восстановить (Restore)

Открытие или закрытие объекта

ОткрытьФорму (OpenForm), ОткрытьМодуль (OpenModule), ОткрытьЗапрос (OpenQuery), ОткрытьОтчет (OpenReport), ОткрытьТаблицу (OpenTable),

ОткрытьФункцию (OpenFunction)

ОткрытьСтраницу (OpenDataAccessPage)

Открыть схему (OpenDiagram)

ОткрытьСохраненнуюПроцедуру (OpenStoreProcedure)

ОткрытьПредставление (OpenView)

Закрыть (Close)

Печать объекта

Печать (PrintOut)

Выделение объекта

ВыделитьОбъект (SelectObject)

Задание значения поля, элемента управления или свойства

ЗадатьЗначение (SetValue)

Обновление объекта

ОбновитьОбъект (RepaintObject)

Создание специальной или общей строки меню, специального или глобального контекстного меню

ДобавитьМеню (AddMenu)

Задание состояния пунктов меню в специальной или общей строке меню

ЗадатьКомандуМеню (SetMenultem)

Вывод информации на экран

ВыводНаЭкран (Echo),

ПесочныеЧасы (Hourglass),

Сообщение (MsgBox),

УстановитьСообщения (SetWarnings)

Генерация нажатий клавиш

КомандыКлавиатуры (SendKeys)

Вывод на экран или скрытие встроенной или специальной панели инструментов

ПанельИнструментов (ShowToolbar)

Подача звукового сигнала

Сигнал (Веер)

Более полную информацию по макрокомандам можно получить в разделе Справка Microsoft Access | Программирование в Microsoft Access | Макрокоманды .

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

По месту хранения макросы разделяются на два вида:

простые (объект, состоящий из набора макрокоманд);

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

По способу выполнения макросы разделяются на два вида:

линейные (каждая макрокоманда в макросе выполняется последовательно одна за другой);

с условием (макрокоманды выполняются в зависимости от выполнения определенных условий).

2. Обзор событий

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

Практически все программирование в MS Access сводится к написанию макросов или процедур, обрабатывающих события, т. е. программируется реакция объектов на происходящие события. События различных объектов MS Access представлены на рис.11.1 – 11.3.

События можно разделить на следующие категории, сгруппировав их по функциональному признаку (выполняемым операциям):

– открытие и закрытие форм и отчетов;

– изменение данных;

– смена фокуса ввода;

– события работы с клавиатурой;

– события работы с мышью;

– печать;

– отслеживание ошибок;

– истечение промежутка времени.

Рис.11.1. Вкладка События окна свойств формы.

Рис.11.2. Вкладка События окна свойств элемента управления Подчиненная форма/отчет.

Рис.11.3. Вкладка События окна свойств элементов управления. Кнопка (а) и Поле со списком (б).

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

Создание макроса состоит из двух шагов:

1. В окне базы данных перейти на вкладку Макросы и щелкнуть по кнопке Создать .

2. В появившемся окне Конструктор макросов создать макрос.

Окно Конструктора макросов состоит из двух областей (рис.11.4):

– верхняя область предназначена для описания логической структуры макроса;

– нижняя область предназначена для описания аргументов макрокоманд.

В верхней области Конструктора макросов по умолчанию отображается два столбца Макрокоманда и Примечание . Отображение столбцов Имя макроса и Условие осуществляется с помощью соответствующих кнопок на панели инструментов Конструктор макросов .

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

Ячейки в столбце Примечание используются для описания действия выполняемого макрокомандой (могут быть незаполненными).

Ячейки в столбце Имя макроса используются для задания имени макроса в группе макросов.

Ячейки в столбце Условие используются для задания последовательности выполнения макрокоманд.

Рис.11.4. Окно Конструктор макросов

Для быстрого переключения между верхней и нижней областью окна Конструктора макросов можно использовать клавишу < F 6> .

Существует еще один способ ввода макрокоманд.

В окне базы данных выбирается объект: форма, отчет, макрос, запрос или таблица и с помощью мыши перетаскивается в окно Конструктор макросов . В поле столбца Макрокоманда автоматически появится макрокоманда (например, ОткрытьФорму ) и автоматически заполнятся некоторые аргументы макрокоманды (имя объекта, режим, режим окна).

Для ввода значений аргументов макрокоманды используется два способа:

– выбор значения из списка допустимых значений;

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

Пример макроса позволяющего открыть форму "Клиенты" в режиме формы, только для чтения и отобразить клиентов только из Испании, представлен на рис.11.5.

Рис.11.5. Окно Конструктор макросов с заполненными значениями аргументов

3.1. Задание условий выполнения макрокоманд

Для создания макросов нелинейной структуры необходимо отобразить столбец Условие и указать в нем условие выполнения макрокоманд.

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

Пример создания макроса нелинейной структуры

В форме Поставщики имеется два поля Страна и Индекс . Необходимо до обновления записи (перед сохранением) проверить правильность введенного индекса для некоторых стран.

Если поле Страна имеет значение NULL, то сохранить запись, т. к. проверка индекса на принадлежность стране невозможна, иначе осуществить проверку значения в поле Индекс :

– если поле Страна имеет значение Франция , Италия или Испания , а в поле Индекс введено не 5 знаков, то не сохранять запись, если 5 – сохранить;

– если поле Страна имеет значение Австралия или Сингапур , а в поле Индекс введено не 4 знака, то не сохранять запись, если 4 – сохранить;

Алгоритм макроса в виде блок-схемы представлен на рис 11.6, а реализация макроса в окне Конструктор макросов , приведена на рис.11.7.

Данный макрос связан со свойством До обновления на вкладке События формы Поставщики .

Рис.11.6. Алгоритм работы макроса

Рис.11.7. Реализация макроса, имеющего нелинейную структуру

3.2. Создание группы макросов

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

Для сокращения количества макросов, как объектов базы данных, существует другой способ их организации – объединение нескольких макросов в группу. Объединение макросов в группу можно осуществлять по двум признакам:

– принадлежности к объекту автоматизации (для каждой формы и отчета);

– принадлежности к типу автоматизируемых операций.

Группа макросов хранится в одном объекте и, следовательно, имеет одно общее имя – имя объекта. Для запуска макроса, входящего в группу, используется полное имя: [Имя_группы].[Имя_макроса_в_группе].

Для создания группы макросов необходимо выполнить следующие действия:

1. Открыть Конструктор макросов .

2. Отобразить столбец Имя макроса.

3. В ячейке столбца Имя макроса ввести уникальное для группы имя макроса.

4. В ячейках столбца Макрокоманда , начиная со строки, в которой находится имя макроса, ввести все макрокоманды составляющие макрос и их аргументы.

5. Пропустить одну строку.

6. Повторить шаги 3 – 5 для каждого макроса.

Пример создания группы макросов представлен на рис.11.8.

Рис.11.8. Реализация группы макросов

4. Запуск макроса

Способов запуска макросов очень много.

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

После отладки макроса, для его запуска создается командная кнопка в форме, команда меню или кнопка на панели инструментов или макрос связывается с событием в форме или отчете. Макрос может быть запушен и из другого макроса, а также программно – из процедуры VBA.

Запуск макроса из Конструктора макросов.

Для запуска простого макроса или первого макроса из группы щелкнуть по кнопке Запуск на панели инструментов Конструктор макросов .

Для запуска любого макроса из группы выполнить команду Сервис | Макрос | Выполнить макрос … и в диалоговом окне Запуск макроса выбрать имя макроса.

Запуск макроса из окна базы данных.

Для запуска простого макроса или первого макроса из группы перейти на вкладку Макросы , выбрать макрос и щелкнуть по кнопке Запуск в окне БД.

Запуск любого макроса из группы см. выше.

1. Открыть форму или отчет в режиме Конструктор .

2. Выделить объект автоматизации (элемент управления, форму или отчет, раздел формы или отчета).

3. Открыть диалоговое окно Свойства объекта .

4. Выбрать событие на вкладке События , которому назначается макрос.

5. Выбрать из списка полное имя макроса.

Запуск макроса будет производиться каждый раз, когда будет происходить событие, для которого назначен макрос. Пример назначения макроса событию представлен на рис.11.9.

Рис.11.9. Назначение макроса событию

Макрос с именем Autoexec запускается автоматически при открытии базы данных. Для отмены действий, указанных в данном макросе, необходимо открывать базу данных при нажатой клавише > .

Если вам понравилась макрокоманда Spatter Frame , то у вас неминуемо возникнет желание адаптировать ее в соответствии со своими потребностями. Некоторую часть этой работы можно проделать, не изменяя макрокоманду. Например, можно изменять параметры фильтра для того, чтобы задавать степень неровности краев. По умолчанию данная макрокоманда при выполнении не запрашивает никаких параметров, а пользуется заданными при ее записи. Вы можете указать макрокоманде на необходимость выдачи запросов относительно любой команды, имеющей какие-либо параметры. Продемонстрируем на примере параметров фильтра Spatter .

  1. Выберите первый снимок в палитре History . Это вернет изображение в первоначальное состояние.
  2. Найдите в палитре Actions строку с командой Spatter и щелкните на пустом прямоугольнике слева от имени команды. В нем появится пиктограмма, изображающая диалоговое окно, представленная на рисунке.
  3. Spatter Frameb .
  4. Actions .
  5. При выполнении команды Spatter Photoshop откроет диалоговое окно фильтра, в котором вы сможете выбрать желаемые параметры. Попробуйте, например, уменьшить значение Smoothness до 2.
  6. Нажмите кнопку ОК . Макрокоманда продолжит выполнение.

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

  1. Щелкните на галочке, слева от имени команды Make snapshot в палитре Actions .
  2. Выберите имя всей макрокоманды Spatter Frame.
  3. Запустите макрокоманду на выполнение щелчком на соответствующей пиктограмме в палитре Actions .
  4. Откройте палитру History и убедитесь, что новый снимок не был создан. Использование временного отключения той или иной команды очень полезно при создании собственных макрокоманд и при их отладке. Дальнейшие изменения обязательно затронут саму макрокоманду и потребуют записи новых команд и удаления существующих.

Запись макрокоманды.

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

  1. Активизируйте слой Layer 1.
  2. Разместим макрокоманду в новом наборе макрокоманд. В палитре Actions нажмите кнопку создания нового набора макрокомандCreate new set .
  3. В открывшемся диалоговом окне New Set введите имя нового набора, например, "My Actions".
  4. Нажмите кнопку ОК. В палитре появился новый набор.
  5. В палитре Actions выберите пиктограмму создания новой макрокоманды Create new action.
  6. В появившемся диалоговом окне New Action введите имя макрокоманды в поле Name , например, "Center (Layer)". Ниже этого поля расположен список всех наборов макрокоманд, присутствующих в палитре. По умолчанию в нем выбран выделенный набор, My Actions. Остальными элементами этого диалогового окна займемся чуть позже.

Совет. Когда вы создаете свою макрокоманду, указывайте с чем она работает. Если макрокоманда требует для работы изображения на отдельном слое, укажите в скобках "Layer". Если же для ее функционирования необходима выделенная область, укажите "Selection". Такие обозначения приняты при обмене макрокомандами.

  1. Нажмите кнопку Record . С этого момента все ваши действия в программе будут записываться в макрокоманду Center (Layer). После выполнения каждой команды сразу же смотрите в палитру Actions , проверяя результат ее записи. Пиктограмма записи в палитре подсвечена красным цветом.
  2. Выберите команду All меню Select или нажмите клавиши CTRL+A . В палитре Actions появилась первая команда Set Selection с параметромТо , соответствующим выделению всего холста (All ).
  3. Выберите команду Cut меню Edit Actions.
  4. Выберите команду Paste меню Edit . Соответствующая команда появится и в палитре Actions.

Совет. Если при записи макрокоманды вы ошибочно сделали не то действие и сразу же это обнаружили, выберите команду Undo меню Edit . Ошибочная команда из палитры Actions при этом не исчезнет, но изображение вернется в предыдущее состояние. Далее просто введите верную команду. Оставшуюся в палитре неправильную команду несложно удалить после завершения записи. Для этого нужно просто перетащить строку команды к пиктограмме удаления.

  1. Все действия макрокоманды выполнены и пора остановить запись. Щелкните на пиктограмме остановки записи в палитре Actions .

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

  1. Выберите в палитре Actions заголовок созданной макрокоманды.
  2. Выполните команду Insert Stop... из меню палитры Actions . В открывшемся диалоговом окне Record Stop увидите поле Message , в которое можете ввести несколько строк комментария, и флажок Allow Continue , определяющий, разрешить или нет дальнейшее выполнение макрокоманды. Введите текст комментария и установите флажок Allow Continue.
  3. Нажмите кнопку ОК .
  4. Переместите команду Stop в палитре Actions на первое место в нашей макрокоманде тем же способом, которым меняли порядок слоев в палитре слоев -Drag and Drop. Мы добавили комментарий к макросу, который, сможет остановить выполнение макроса, если пользователь нажмет Stop в открывшемся диалоговом окне.

В программировании, даже таком элементарном, требуется, чтобы программа освобождала все занятые ресурсы компьютера. Данная макрокоманда этому требованию не удовлетворяет, поскольку в буфере обмена осталось все содержимое слоя. Если изображение достаточно велико, то занятая память отрицательно скажется на производительности программы; С другой стороны, при переключении на любую другую программу и обратно, будет происходить передача содержимого буфера обмена между ними. Эго приведет к назойливой задержке. В качестве самостоятельной работы дополните макрокоманду командой Purge из меню Edit .

Примечание. Чтобы записать контур в макрокоманду, нужно его предварительно создать, а затем воспользоваться командой Insert Path меню палитры Actions . При проигрывании макрокоманды контур будет воспроизведен на новом изображении. Запись макрокоманд в Photoshop имеет значительные ограничения. Во-первых, не записываются действия инструментов рисования (Brush, Stamp, Eraser и пр.). Во-вторых, нет возможности управления ходом выполнения макрокоманды. Макрокоманда не может вызывать различные команды в зависимости от каких-либо условий, нельзя организовать циклическое выполнение группы команд, получение и использование информации о состоянии документа (размер, разрешение, цветовая модель, количество и типы слоев и каналов и т.п.).



Рекомендуем почитать

Наверх