- •Модули (vba) в субд Access
- •Когда следует использовать макросы
- •Согда следует использовать vba
- •Среда Visual Basic для приложений
- •Общие модули
- •Модули форм и отчетов
- •Окно модуля
- •Окно отладки
- •Переменные и константы
- •Типы данных
- •Область определения переменных и констант
- •Инструкция Const
- •Инструкция Dim
- •Инструкция Public
- •Инструкция Type
- •Методы объектов
- •Функции и подпрограммы
- •Инструкция Function
- •Инструкция Sub
- •Управление выполнением программы
- •Инструкция Call
- •Инструкция Do... Loop
- •Инструкция For... Next
- •Инструкция For Each... Next
- •Инструкция GoTo
- •Инструкция If...Then... Else
- •Инструкция Select Case
- •Инструкция Stop
- •Инструкция While...Wend
- •Инструкция With
- •Запуск макрокоманд
- •Объект DoCmd
- •Макрокоманды и их эквиваленты в vba
- •Обработка ошибок
- •Инструкция On Error
Инструкция 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, то результат сравнения должен быть истинным.
Если <проверяемому-выражеиию> удовлетворяют несколько предложений Case, VBA выполняет блок инструкций только первого из них. Блок инструкций, расположенный после предложения Case Else, выполняется в том случае, когда ни одно из предшествующих предложений Case не удовлетворяет <про-веряемому-выражению>. Вы можете использовать вложенную инструкцию 5с-lect Case, поместив ее после одного из предложений Case.
Пример:
Чтобы присвоить целочисленное значение переменной в зависимости от того, начинается ли строка символов с буквы в интервале от А до F, от G до N либс от О до Z, введите:
Dim strMyString As String, intVal As Integer Select Case UCase$(Mid$(strMyString, 1, 1)) Case "A" To "F"
intVal = 1 Case "G" To "N"
intVal == 2 Case "0" To "Z"
intVal = 3 Case Else
intVal = 0 End Select