Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции VBA.doc
Скачиваний:
1
Добавлен:
21.04.2019
Размер:
68.1 Кб
Скачать

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

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

До обновления После обновления Выход Потеря фокуса

(BeforeUpdate  AfterUpdate Exit LostFocus

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

События при удалении записей

Порядок событий следующий:

Удаление  До подтверждения Del  После подтверждения Del

(Delete  BeforeDelConfirm  AfterDelConfirm)

Если пользователь пытается удалить запись, то отобразится сообщение с запросом о подтверждении.

События при открытии формы

Когда открывается форма, выполняются следующие события:

ОткрытиеЗагрузкаИзменение размераВключение После отображения

(Open Load Resize Activate Current)

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

События при создании новой записи

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

После отображения  До вставки  После вставки

(Current  BeforeInsert  AfterInsert)

События при закрытии формы

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

Выгрузка  Отключение  Закрытие

(Unload Deactivate  Close)

Объявление переменных

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

Использование оператора Option Explicit

В начале модуля Visual Basic (либо модуля формы или отчета, либо стандартного объекта модуля) в разделе Declarations необходимо всегда использовать оператор Option Explicit, который указывает, что компилятор должен выдавать ошибку для каждой переменной, необъявленной явно.

Использование оператора DIM

DIM имя_переменной [As тип]

Создание переменных, доступных во всем приложении

Модульные переменные

Применяя оператор DIM, для объявления переменной в процедуре, можно обращаться к переменной только в рамках этой процедуры. Такие переменные называют переменными Private, или объявленными в процедуре. Их можно увидеть только в процедуре, даже если они хранятся в этом же модуле.

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

Чтобы объявить переменную для использования процедурами в разных модулях, используется оператор Public.

Статические переменные

Статическая переменная остается в памяти после завершения работы процедуры. Тем не менее, доступ к ней разрешен только из этой процедуры.

Например, процедуре может понадобиться сохранить промежуточную сумму счетчика. Каждый раз при запуске процедуры требуется добавить число к сумме. С этим прекрасно справляется статическая переменная (еще пример: попытка ввода пароля с 3-х раз).

Напишем следующую процедуру.

Sub staticTestProcedure()

Static intcounter As Integer

intcounter = intcounter + 1

Debug.Print intcounter

End Sub

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

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