Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ ДАННЫХ.docx
Скачиваний:
11
Добавлен:
16.11.2018
Размер:
41.16 Кб
Скачать

Область действия переменных и процедур

Те процедуры функции переменные и константы VB имеют свою область действия. Это означает, что все они могут использоваться только в определенном месте программного кода, то есть там где они описаны. Если переменная, а описана с помощью оператора Dim и процедуры 1 то именно эта процедура и является областью действия переменной а. имеется три различных уровня при определение области действия переменных:

Уровень процедуры

Уровень модуля

Уровень проекта

Что бы определить переменную на уровне процедуры ее описание помещается в тело этой процедуры. Что бы определить процедуру на уровне модуля и сделать ее тем самым доступной для совместного использования, во всех процедурах этого модуля следует поместить ее описание в секции объявления модуля (перед текстом каких либо процедур или функций), при этом можно использовать явное описание области действия, т.е. вместо ключевого слова Dim использовать Private. Что бы описать переменную на уровне проекта необходимо расположить ее описание в секции объявлений одного из модулей проекта и при этом обязательно использовать ключевое слово Public. Описанные таким образом переменные могут использоваться в любом модуле проекта. Все сказанное относится к описанию и определению области действия констант и массивов. Для переменных имеется еще один способ описания не изменяющих их уровня, но позволяющий сохранить значения переменной описанной на уровне процедуры после завершения работы этой процедуры для этого используют описатель Static т.е. определяют такую переменную как статическую. Эта переменная сохраняет выделенная ей место в памяти и свое значение даже после завершения процедуры, в которой она была описана и была использована. Тем не менее, статическая переменная не может быть использована в других процедурах. Изменяется лишь время ее жизни но не область действия. Если произойдет повторный вызов той же самой процедуры, в которой была описана статическая переменная то эта переменная сохранит свое прежнее значение которое она имела в момент завершения работы этой процедуры при предыдущем вызове. Обыкновенные (не статические) переменные всякий раз инициализируются заново и получают при в ходе в процедуру пустые значения. Процедуры и функции имеют только 2 уровня областей действия: уровень модуля и уровень проекта. По умолчанию используется уровень проекта. Таким образом, процедура или функция может быть вызвана любой другой процедурой или функцией в этом проекте. При описание процедуры, функции на уровне проекта может использоваться необязательное ключевое слово Public, но не какого воздействия на процедуру наличие или отсутствие этого слова не оказывает. Если требуется описать процедуру используемую только на уровне модуля применяется ключевое слово Private такое описание не только сужает область действия для процедуры, но и запрещает ее использование как самостоятельную т.е. эту процедуру можно вызвать только из другой процедуры. При описание используется ключевое слово Static. Оно ни как не влияет на область действия процедуры но воздействует на все переменные описанные в нутрии этой переменной или функции. В этом случае все локальные переменные получают статус Static и тем самым сохраняются в памяти после завершения такой процедуры и при повторном ее вызове сохраняют свои прежние значения.

Public a1 As String

Private a2 As Integer

Dim a3 As Singl

Sub Proc1()

Dim A4 As Integer

Static A5 As Integer

A1=”текстовая строка1”

A2=2

A3=3.14

A4=A4+4

A5=A5+5

MsgBox A4

MsgBox A5

End Sub

Sub Proc2()Proc1

MsgBox A1

MsgBox A2

MsgBox A3

MsgBox A4

MsgBox A5

Proc1

End Sub