Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ACCESS.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.23 Mб
Скачать

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

Макрос - объект Access, позволяющий автоматически вы­полнять определенные действия или совокупность действий. Выполнение прикладной задачи можно представить как резуль­тат последовательного выполнения ряда действий, каждое из которых может быть записано командой на языке Visual Basic, или VBA.

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

В макросах в Access используются специальные команды, называемые макрокомандами.

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

При выборе команды Вид - Имена макросов или Вид - Ус­ловия появляются два дополнительных столбца: Имя макроса и Условие.

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

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

Рис.31

характеристик во вкладке События окна свойств форм или отчета.

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

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

Макросы можно разбить на четыре основные группы:

• макросы форм;

• макросы отчетов;

• макросы импорта/экспорта;

• макросы горячих клавиш.

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

Макросы отчетов могут быть связаны с двумя типами со­бытий: событиями отчетов и событиями разделов. Первые выполняются на уровне всего отчета, а вторые - на уровне от­дельных разделов (областей) отчета.

Задание 1

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

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

Порядок работы

1. Щелкните мышью вкладку Макросы.

2. Щелкните мышью кнопку Создать. Откроется окно Макрос.

3. Откройте список макрокоманд и выберите макрокоманду На запись.

4. Перейдите в область Аргументы макрокоманды.

5. В строке Тип объекта введите Форма.

6. В строке Имя объекта выберите из раскрывающегося спи­ска имя формы Регистрация клиентов.

7. В строке Запись выберите из раскрывающегося списка Новая.

8. Сохраните макрос, введя его имя, например Новая_рег_кл.

9. Теперь необходимо вставить запуск макроса в форму Ре­гистрация клиентов. Для этого откройте форму в режиме Кон­структора.

10. Откройте Свойства формы.

11. В пункте свойств Текущая запись установите вызов макроса Новая_рег_кл.

Задание 2

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

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

Задание 3

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

Для запуска такой формы Главная при входе в Access, а так­же при выходе из программы (выход из Access) используются макросы.

Задание 4

Создать макрос для запуска формы Главная при входе в Access.

Порядок работы

1. Щелкните мышью вкладку Макросы.

2. Щелкните мышью кнопку Создать. Откроется окно Макрос.

3. Откройте список макрокоманд и выберите макрокоманду Открыть форму.

4. Перейдите в область Аргументы макрокоманды.

5. В строке Имя формы введите Главная.

6. В строке Режим введите Форма.

7. В строке Режим окна введите Обычное.

8. Сохраните макрос, введя его имя обязательно AutoExec.

Задание 5

Создать макрос для выхода из программы.

Порядок работы

  1. Щелкните мышью вкладку Макросы.

  2. Щелкните мышью кнопку Создать. Откроется окно Макрос.

  3. Откройте список макрокоманд и выберите макрокоманду Выход.

  4. Сохраните макрос, введя его имя, например Выход.

ПРАКТИЧЕСКАЯ РАБОТА № 6

Создание программы «Учет продуктов на складе»

Постановка задачи

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

Порядок работы

1. Создайте базу данных с именем файла Склад_имя_имя_.mdb.

2. Создайте, используя Конструктор, таблицы:

Наименование продуктов - для ввода номенклатуры про­дуктов;

Приход - для регистрации поступающих на склад продуктов;

Расход - для регистрации расхода продуктов. Структура таблиц приведена на рис. 33-35.

3. Создайте связи между таблицами, как показано на рис. 36.

4. Создайте форму Приход, используя Конструктор форм. Вид формы приведен на рис. 37. Поле Стоимость вычисляется по формуле:

Стоимость = Количество * Цена

(для создания формулы используйте Построитель выражений).

5. Так как данные в вычисляемых полях формы не записыва­ются в таблицу непосредственно, необходимо создать запрос Стоимость по приходу на обновление поля Стоимость в таб­лице Приход. Вид запроса приведен на рис. 38.

В запросе в поле Обновление введите формулу:

[Приход]![Количество] * [Приход]![Цена]

Сохраните запрос под именем Стоимость по приходу.

Рис.33

6. Для запуска запроса Стоимость по приходу создайте кнопку Обновление в форме Приход.

7. Создайте макрос Вых_прих для закрытия формы Приход.

8. Создайте кнопку Выход для запуска макроса Вых_прих.

9. Для того чтобы форма Приход открывалась на новой запи­си, создайте макрос Нов_прих подобно тому, как это делалось в практической работе № 5 (задание 1), подключив его для за­пуска в пункте Текущая запись свойств формы Приход.

Окончательный вид формы Приход приведен на рис. 39.

Особенностью программы является то, что для правильного проведения расхода надо иметь информацию об остатках про­дуктов на складе. Поэтому сначала определим остаток продук­тов на складе, а затем оформим расход. Для вычисления остатка надо сгруппировать информацию о продуктах на складе по но­менклатуре, отдельно для таблиц Приход и Расход.

10. Создайте запрос Приход, позволяющий проводить груп­пировку по номенклатуре продуктов. Вид запроса приведен на рис. 40.

11. Создайте запрос Расход, позволяющий проводить груп­пировку по номенклатуре продуктов. Вид запроса приведен на рис. 41.

12. Создайте запрос Остаток. Для этого в Конструктор за­проса добавьте таблицу Наименование, а также запросы При­ход и Расход. Создайте связи между полем Наименование из таблицы Наименование и полями Наименование из запросов Приход и Расход. Определите Параметры объединения, для чего щелкните мышью на линии связи, выделите ее, а затем, нажав правую клавишу мыши, откройте контекстное меню и войдите в пункт Параметры объединения. Выберите в каче­стве параметра объединения пункт 2.

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

Ост_кол: IIf(Приход Запрос]![Sum-Количество]>0;

[Приход Запрос]![Sum-Количество];0)-

IIfРасход Запрос]![Sum-Количество]>0;

[Расход Запрос]! [Sum-Количество] ;0),

где Sum_Количество - поле, содержащее данные о количестве продуктов, сформированное в результате запросов на группи­ровку по номенклатуре.

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

Ост_ст: IIf([Приход Запрос]![Sum-Стоимость]>0;

[Приход Запрос]! [Sum-Стоимость] ;0)-

IIfРасход Запpoc]![Sum-Cтоимocть]>0;

[Расход Запрос]! [Sum-Стоимость] ;0)

Цена: IIf([Ост_кол]>0;[Ост_ст]/[Ост_кол];0),

где Sum_Стоимость - поле, содержащее данные о стоимости продуктов, сформированное в результате запросов на группи­ровку по стоимости.

Примечание. Для построения этого выражения исполь­зуйте функцию IIF, которая находится в папке Функции - Встроенные функции.

Вид запроса приведен на рис. 42.

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

• создайте форму Остаток на основе запроса Остаток;

• войдите в конструктор формы и, удалив поле Наименова­ние, создайте его в разделе Заголовок формы в виде поля со списком. При создании поля со списком в качестве способа получения значения укажите Поиск записи в форме на основе значения, которое содержит поле со списком;

• создайте подчиненную форму Расход, используя, напри­мер, Мастер создания форм. В качестве источника данных вы­берите запрос Остаток, а в качестве источника данных для под­чиненной формы - таблицу Расход, включив туда все поля. Вы­берите вид представления данных Подчиненная форма. Соз­данная подчиненная форма будет иметь название Расход под­чиненная форма.

Для того чтобы Расход подчиненная форма открывалась на новой записи, а в качестве наименования продукта и цены под­ставлялись, соответственно, наименование продукта из поля со списком и цена из поля Цена, создайте макрос Рас_новая_зп (рис. 43), который отрабатывает последовательное выполне­ние следующих команд: ОткрытьФорму, НаЗапись, Задать-Значение.

Рис.43

При написании команды НаЗапись в аргументе макрокоман­ды Запись укажите Новая.

При написании команды ЗадатьЗначение в первом случае в аргументе макрокоманды Элемент указать:

[Forms]![Расход подчиненная форма]![Наименование],

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

[Forms]![Остаток]![ПолеСоСписком6],

во втором случае, в аргументе макрокоманды Элемент указать:

[Forms]![Расход подчиненная форма]![Цена],

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

[Forms]! [Остаток]! [Цена].

Для того чтобы можно было оформить расход после получе­ния справки об остатках, выполните следующее:

• откройте форму Остаток в режиме конструктора;

• сделайте активным Примечание формы и войдите в пункт меню Свойства;

• войдите в пункт меню События, и в поле Нажатие кнопки подключите макрос Рас_новая_зап.

Теперь при нажатии левой кнопки мыши в области примеча­ния формы Остаток будет открываться Расход подчиненная форма (рис. 44).

Рис.44

14. Поле Стоимость в форме Расход подчиненная форма

сделайте вычисляемым, так как это делалось в пункте 4, и соз­дайте запрос на обновление Стоимость по расходу (рис. 45). В поле Обновление введите формулу:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]