Программирование в MS ACCESS, страница 2

Локальные переменные (то есть доступные только в данной процедуре и теряющие значения при выходе из нее) описываются внутри процедуры с помощью ключевого слова Dim и могут иметь явно указанный тип данных после ключевого слова As. К базодым типам данных относятся типы Boolean(логический, имеет значение True - Истина или False - Ложь), Byte (битовый, имеет значение 0 или 1), Currency(валюта, соответствует установленному в системе типу национальной валюты), Date(Дата), Double(число с плавающей запятой двойной точности в диапазоне от +-4.94065645841247E–324 до +-1.79769313486231E308, может быть описано символом #), Integer (целое в диапазоне от –32,768 до32,767, может быть описано символом %), Long (длинное целое в диапазоне от –2,147,483,648 до 2,147,483,647, может быть описано символом &), Object (объектовая переменная без указания конкретного типа объекта), Single(число с плавающей запятой двойной точности в диапазоне от +- 1.401298E–45 до +-3.402823E38, может быть описано символом !), String(строка фиксированной или произвольной длины - до 2^31 символов, может быть описана символом $), Variant (произвольный (неопределенный) тип, используемый по умолчанию, позволяющий хранить данные любых типов, включая числа, строки, дату/время, а также объектовые переменные, включая Null и Empty). Заметим, что при вводе ключевого слова As редактор VBA предлагает список всех доступных типов данных, что позволяет не вводить наименование типа данных, а выбрать его из списка.

Кроме описания типов данных используемых переменных, процедура VBA может содержать комментарии (строки, начинающиеся с символа апострофа на латинском регистре), операторы, содержащие арифметические операции и вызовы стандартных функций, включая математические, статистические и строковые, причем в одной строке может быть записано более одного оператора, а в качестве разделителя применяется двоеточие. Отдельно следует отметить оператор Set, используемый для создания объекта класса. Поскольку VBA является объектно-ориентированным языком, то для классов, встроенных в компилятор, или описанных в подключаемых библиотеках классов, можно читать/устанавливать значения свойств (параметров) и вызывать соответствующие методы (встроенные в класс функции).

Кроме операторов, процедуры могут содержать конструкции ветвления и цикла. К первым относятся конструкции If - Then - Else - End If и Select Case - Case - end Select. Первая конструкция хорошо известна, интуитивно понятна и характерна лишь наличием окончания инструкции (End If) и особенностями записи операций сравнения, к которым относятся =, >, >=, <, <=, <>. Для записи сложных условий используются логические операторы And, Or, Not. Вторая конструкция отсутствовала в классическом Basic и пришла в VBA из языка Си. Она предназначена для выполнения одной из нескольких групп инструкций в зависимости от значения анализируемого выражения. Ее синтаксис имеет следующий вид:

Select Case a

Case “a”: MsgBox CStr(a)

Case “b”: MsgBox CStr(a)

Case Else MsgBox “Нет такой буквы!”

End Select

Здесь MsgBox - стандартная функция вывода сообщения в виде всплывающего окна, а CStr - функция приведения типа к типу String.

Конструкции циклов в VBA очень хорошо развиты. Кроме хорошо известной из классического Basic конструкции с заранее известным числом повторений For - Next, в VBA имеется конструкция For Each - Next, служащая для выполнения набора операторов для каждого объекта из коллекции, включающей объекты одного класса. Конструкция Do - Loop может быть использована для построения циклов как с пред-, так и с постпроверкой условия, причем проверка может производиться с помощью ключевых слов While и Until. Ключевые слова While - Wend позволяют организовать типичный цикл с предпроверкой условия и заранее неизвестным числом повторений.