Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных (лекции).doc
Скачиваний:
7
Добавлен:
13.08.2019
Размер:
6.89 Mб
Скачать

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

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

Нужно использовать один из доступных методов (в выпадающем списке) этого объекта. Синтаксис:

DoCmd. метод [аргументы]

Метод- имя метода, описывающего макрокоманду.

Пример. Фильтрация записей для отчета.

Допустим, необходимо просмотреть данные о подписчиках, живущих в заданном штате.

Для задания фильтра пользователю нужно выдать диалог. Это можно сделать с помощью функции InputBox ().

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

DoCmd. Open Report

С аргументами

Имя отчета. [,режим][, имя файла][, условие WHERE]

Код процедуры

Option Compare Database

Option Explicit

Private Sub GetState_Click ()

On error GoTo Err_ GetState_Click

Dim strDocName As String

Dim strFilter As String

Dim strState As String

s trState = InputBox (“Введите двухзначную аббревиатуру штата”, “Просмотр данных”, “WY”)

Заголовок Штат по умолчанию

strFilter = “[область Край Республика] = “””& strState_

& “”””

strDocName = “Данные”

DoCmd. OpenReport strDocName, as Preview,,_

strFilter

Exit_GetState_Click:

E

Это типичная обработка ошибок

xit Sub

E rr_GetState_Click:

MsgBox Err. Description

Resume Exit_GetState_Click

End Sub

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

Последовательность событий.

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

События формы и элементов управления.

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

Открытие (Open)

Загрузка (Load)

Изменение размера (Resize)

Включение (Activate)

Текущая запись (Current)

Если на форме есть активный элемент управления, то он получает фокус ввода (Got Focus).

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

Можно присоединить макрос macCaption к свойству «Текущая запись» (On Current) формы. Это вызовет изменение надписи- заголовка формы при перемещении от записи к записи.

m acCaption

М акрокоманда Примечание

З адать значение

Элемент [Forms]![Classes].[Caption]

Выражение [Forms]![Classes].[ClassName]

Можно также использовать событие «Текущая запись» (Current) для управления скрытием / показом индивидуальных меню и панелей инструментов.

При закрытии формы:

Выгрузка (Unload)

Отключение (Deactivate)

Закрытие (Close)

При наличии активного элемента элемент потеряет фокус при закрытии формы после «Закрытия» (Close).

П ри открытии формы и перемещении между элементами (Tab):

Открытие С1- первый элемент формы.

Вход (Enter) (C1)

Получение фокуса (Got Focus) (C1)

Выход (Exit) (C1)

Потеря фокуса (Lost Focus) (C1)

Вход (Enter) (C2)

Получение фокуса (Got Focus) (C2)

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

При сохранении новой записи с помощью команды “Сохранить запись” (Save Record) (из меню Записи (Records)) происходят следующие события:

До обновления (Before Update) (C2)

После обновления (After Update) (C2)

До обновления (Before Update) (форма)

После обновления (After Update) (форма)

После вставки (After Insert) (форма).

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

Удаление (Delete)

Текущая запись (Current)

До подтверждения Del (Before Del Confirm) (отображает диалог)

После подтверждения Del (After Del Confirm)