Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

gstrWhereClub = Winthrop а затем нажмете клавишу enter. 7 страница



Ключевое слово Optional используется для описания необязательного аргумента типа Variant. В этом случае все последующие аргументы процедуры Sub также должны быть необязательными и описываться с помощью ключевого слова Optional. Отсутствие необязательного аргумента можно проверить с помощью встроенной функции IsMissing. Для описания массива необязательных элементов типа Variant служит ключевое слово ParamArray. При последующем вызове подпрограммы вы можете передавать ей произвольное число аргументов. Аргумент, описанный с использованием ключевого слова ParamArray, должен быть последним в списке аргументов процедуры Sub.

Инструкцию Exit Sub можно использовать в любом месте тела подпрограммы. Это гарантирует очистку ошибок и нормальный выход из подпрограммы с возвратом в вызывающую процедуру. Если при выполнении процедуры Sub произошла ошибка и работа подпрограммы завершается по инструкции End Sub, то управление передается вызывающей процедуре без очистки ошибки. (Более подробно обработка ошибок рассматривается в разделе «Обработка ошибок» этой главы.)



Пример:

Чтобы создать подпрограмму с именем MySub, которая принимает два строковых аргумента, но может изменять только второй аргумент, введите:

Sub MySub (ByVal strArg! As String, strArg2 As _ String)

<инструкции-тела-подпрограммы> End Sub

Управление выполнением программы

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

Инструкция Call

Инструкция Call используется для передачи управления процедуре Sub.

Синтаксис:

Call имя-подпрограммы [(<аргументы>)] или

имя-подпрограммы [<аргументы> ] где <аргументы> — это

{ [ByVal | ByRef] <выражение>},...

Пояснения:

Имена переменных, передаваемых подпрограмме вызывающей процедурой, могут отличаться от имен формальных аргументов. Ключевые слова ByVal и ByRef применяютя в инструкции Call только в определенных обстоятельствах, например при вызове процедуры из библиотеки динамической компоновки (DLL). Если при описании аргумента используется ключевое слово ByVal, то VBA передает подпрограмме копию аргумента, и подпрограмма не может изменить значение исходной переменной в вызывающей процедуре. Выражение всегда передается по значению независимо от того, как описан соответствующий формальный аргумент подпрограммы. При использовании ключевого слова ByRef VBA передает адрес переменной, позволяя процедуре изменять фактическое значение переменной.

Примеры:

Чтобы вызвать подпрограмму с именем MySub и передать ей целую переменную и выражение, введите:

Call MySub (intMyInteger, curPrice * intQty) Другой синтаксически правильный способ вызова —

MySub intMyInteger, curPrice * intQty

Инструкция Do... Loop

Инструкция Do... Loop используется для определения блока инструкций, выполнение которого будет повторяться до тех пор, пока заданное условие является истинным.

Синтаксис:

Do [{While Until} <условие>]

[<инструкции-тела-цикла>]

[Exit Do]

[ <инструкции-тела-цикла>] Loop или

Do

[ <инструкции-тела-цикла>] [Exit Do]

[ <инструкции-тела-цикла> ] Loop [{While I Until} <условие>]

Пояснения:

<условие> может быть любым выражением, которое Microsoft Access может оценить как True (ненулевое значение) либо False (ноль или Null). Предложение While (Пока) действует противоположным образом по сравнению с предложением Until (До). При использовании предложения While выполнение блока инструкций цикла продолжается до тех пор, пока условие имеет значение True. Если задано предложение Until, выполнение блока инструкций прекращается, как только условие принимает значение True. Когда предложение While или Until находится в начале инструкции Do... Loop (то есть в предложении Do), то условие проверяется до выполнения тела цикла, но если вы поместите предложение While или Until в конце инструкции Do...Loop (в предложении Loop), то VBA выполняет инструкции тела цикла до проверки условия.

Для выхода из цикла прежде, чем будет достигнуто предложение Loop, можно поместить одну или несколько инструкций Exit Do внутри тела цикла. Обычно инструкция Exit Do используется внутри других управляющих структур, таких как If...T hen... Else.

Пример:

Чтобы прочитать все строки таблицы tbICIubs, пока не будет достигнут конец набора записей, введите:

Dim dbEntSched As Database

Dim rcdClubs As RecordSet

Set dbEntSched = CurrentDbO

Set rcdClubs = dbEntSched.OpenRecordSet("tbICIubs")

Do Until rcdClubs.EOF

<инструкции-тела-цикла>

rcdClubs.MoveNext Loop

Инструкция For... Next

Инструкция For... Next позволяет выполнить последовательность инструкции определенное число раз.

Синтаксис:

For счетчик = начальное-значение То конеуное-знауение[81ер шаг]

[<инструкции-тела-цикла>]

[Exit For]

[ <инструкции-тела-цикла>] Next [ счетчик]

Пояснения:

Счетчик должен быть числовой переменной, не являющейся элементом массиве или записи. Счетчику первоначально присваивается начальное-значение. Еслг в инструкции не указан шаг, то по умолчанию он будет равен +/. Если шаг имее1 положительное или пулевое значение, то VBA выполняет тело цикла до тех пор пока значение счетчика не превысит конечное-значение. При отрицательном значении шага инструкции тела цикла выполняются до тех пор, пока значение счетчика не станет меньше конечного-значения. Когда при выполнении цикле встречается предложение Next, к значению счетчика добавляется шаг. Внутр» цикла For... Next можно изменять значение счетчика, но при этом процедура будет значительно труднее проверить и отладить. Изменение конечного-значенш внутри тела цикла не влияет на выполнение инструкции.


Дата добавления: 2015-11-04; просмотров: 20 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.01 сек.)







<== предыдущая лекция | следующая лекция ==>