|
Циклы For могут быть вложенными, но при этом имена переменных счетчш во вложенных циклах не должны повторяться.
Пример:
Чтобы в окне отладки вывести имена первых пяти запросов в базе данныз Entertainment Schedule, введите:
Dim dbEntSched As Database Dim inti As Integer Set dbEntSched = CurrentDbO For inti = 0 To 4
Debug.Print dbEntSched.QueryDefs(inti).Name Next inti
Инструкция For Each... Next
Инструкция For Each... Next позволяет выполнить блок инструкций процедурь для каждого элемента массива или семейства.
For Each элемент In группа
[<инструкции-тела-цикла>]
[Exit For]
[ <инструкции-тела-цикла > ] Next [элемент]
Пояснения:
Элемент — это переменная, представляющая объекты семейства или элементы массива, а группа — это имя семейства или массива. Цикл выполняется до тех пор, пока в семействе или массиве остается хотя бы один элемент. Все инструкции в теле цикла выполняются для каждого элемента семейства или массива.
Циклы For Each могут быть вложенными, но имена переменных элемент во вложенных циклах не должны повторяться.
Пример:
Для вывода списка всех запросов в базе данных Entertainment Schedule можно использовать следующий цикл For Each:
Dim dbEntSched As Database
Dim qdf As QueryDef
Set dbEntSched = CurrentDbO
For Each qdf In dbEntSched.QueryDefs
Debug.Print qdf.Name Next qdf
Инструкция GoTo
Инструкция GoTo используется для выполнения безусловного перехода к другой инструкции в процедуре.
Синтаксис:
GoTo { метка | номер-строки}
Пояснения:
Вы можете пометить строку процедуры, содержащую инструкцию, поместив в начале строки начинающуюся с буквы символьную метку длиной не более 40 символов и заканчивающуюся двоеточием (:). Метка строки не должна совпадать с зарезервированным словом VBA или Microsoft Access. Вы можете также пронумеровать строки процедуры. Каждый номер строки должен содержать только цифры и отличаться от всех других номеров строк в данной процедуре;
перед ним в строке могут быть только пробелы, а длина номера не должна превышать 40 символов. Чтобы перейти к определенной строке процедуры, используйте инструкцию GoTo и укажите в ней нужную метку или номер-строки.
Пример:
Чтобы перейти к строке с меткой SkipOver, введите:
GoTo SkipOver
Инструкция If...Then... Else
Инструкция If...Тhen... Else используется для выполнения той или друго! группы инструкций в зависимости от значений условных выражений.
Синтаксис:
!f <условие-1> Then
[ Инструкции-процедуры-!^ [Elself условие-2 Then
[<инструкции-процедуры-2>]]... [Else
[ <инструкции-процедуры-п>] ] End If
или
If <условие> Then <инструкция-то> [Else <инструкция-иначе>'
Пояснения:
<условие> представляет собой числовое или строковое выражение, которо Access может оценить как True (ненулевое значение) или False (0 или Null) <условие> может также быть специальным выражением TypeOf.-.Is, которо применяется для проверки объектной переменной типа Control. Синтакси такого выражения:
TypeOf <объектная-переменная> Is <тип-элемен.та-управления.
где Объектная-переменная — это имя объектной переменной типа Centre (Элемент управления}, а <тип-элемента-управления> — один из следу ющи типов: BoundObjectFrame (Присоединенная рамка объекта), CheckBox (Фл;
жок), ComboBox (Поле со списком), CommandButton (Кнопка), Chart (Диа1 рамма), CustomControl (Специальный элемент управления), Image (Рисунок^ Label (Надпись), Line (Линия), ListBox (Список), ObjectFrame (Рамка объе! та), OptionButton (Переключатель), OptionGroup (Группа), PageBreak (Коне страницы), Rectangle (Прямоугольник), SubForm (Подчиненная форма), Sul Report (Подчиненный отчет), TextBox (Поле), ToogleButton (Выключател! или UnboundObjectFrame (Свободная рамка объекта).
Если <условие> имеет значение True, VBA выполняет одну или несколы инструкций, расположенных за ключевым словом Then. Если <условие> име< значение False, VBA оценивает <условие>, находящееся за следующим ключ' вым словом Elself, или выполняет инструкции, расположенные после ключево] слова Else, в зависимости от того, что именно (Elself или Else) встречаете первым в тексте процедуры.
Во втором варианте синтаксиса отсутствует инструкции End If, но в этом случ. вся управляющая структура If... Then должна быть расположена полностью i одной строке процедуры. Как <инструкция-то>, так и <инструкцкя-иначе могут быть либо отдельной инструкцией, либо последовательностью инстру ций, разделенных двоеточиями (:).
Пример:
Чтобы присвоить целочисленное значение переменной в зависимости от того, начинается ли строка символов с буквы в интервале от А до F, от G до N либо от О до Z, введите:
Dim strMyString As String, strFirst As String, _
intVal As Integer
strFirst = UCase$(Mid$(strMyString, 1, 1)) If strFirst >= "A" And strFirst <= "F" Then
intVal = 1 Elself strFirst >= "G" And strFirst <= "N" Then
intVal = 2 Elself strFirst >= "0" And strFirst <= "Z" Then
intVal = 3 Else
intVal = 0 End If
Инструкция Select Case
Инструкция Select Case используется для выполнения групп инструкций в зависимости от результата сравнения некоторого выражения со списком или диапазоном значений.
Синтаксис:
Select Case <проверяемое-выражение> [Case <список-сравнения-1> [ Инструкции-процедуры-1>] ]
[Case Else
[ <инструкции-процедуры-п>'\ ] End Select
где <проверяемое-выражение> — это некоторое числовое или строковое выражение, а <список-сравнепия> есть
{<элемент-сравнения>,...} где <элемент-сравнения> это
[выражение | выражение! То выражение 2 |—ь Is <оператор-сравнения> выражение}
и где <оператор-срав11ения> есть:
{= 1 о 1 < 1 > I <= I >=}
Пояснения:
Если в предложении Case <проверяемое-выражение> совпадает с одним из <элементов-сравнения>, то VBA выполняет инструкции, расположенные после этого предложения. Если <элемент-сравнения> представляет собой одиночное выражение, то для того, чтобы выполнялся блок инструкций этого предложения, <проверяемое-выраж,ение> должно быть равно <элементу-сравненпя>. Если <элемент-сравпеиия> содержит ключевое слово То, то первое выражение должно быть меньше второго, а значение <проверяемого-выражения> должно находиться между значениями выражения) и выражения2. Если <элемент-сравнения> содержит ключевое слово Is, то результат сравнения должен быть истинным.
Дата добавления: 2015-11-04; просмотров: 21 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |