Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.10.2020
Просмотров: 7929
Скачиваний: 25

довательность символов алфавита и цифр (не более 255), начинающаяся с буквы. По-
сле наименования и служебного слова As указывается обозначение типа (см.
табл. 2.3). Целесообразно давать переменным какие-либо осмысленные названия. Ре-
комендуем использовать целые слова. (Несмотря на то, что Access VBA формально по-
зволяет применять в идентификаторах буквы национального алфавита, в практике ре-
ального программирования пользоваться подобной возможностью нежелательно. -
Прим.
Выбранный тип должен соответствовать природе объекта данных.
Далее предлагаем попробовать объявить несколько переменных. Чтобы объявить
переменную, предназначенную для хранения имени человека, можно записать:
Dim Name As String
Если необходима переменная, которая должна содержать значение даты рождения,
допустимо такое объявление:
Dim BirthDate As Date
Попытайтесь припомнить любые данные, с которыми вам приходится иметь дело,
и записать на бумаге выражения объявлений переменных для их хранения. При этом
вы невольно воспользуетесь основными языковыми конструкциями, входящими в со-
став объявлений переменных.
А теперь все вместе
Выражения — наименьшие части кода, которые Access способна воспринимать и
использовать для решения задачи. Вспомните материал предыдущего раздела: объяв-
ления переменных — примеры выражений.
Употребляя служебное слово Dim при объявлении переменных, вы уже реально
приступили к самостоятельному построению выражений. Хотя переменные сами по
себе еще не решают задачу, они выступают важным звеном в общем технологическом
цикле программирования.
Арифметические операторы
Арифметические операторы могут быть и простыми, и достаточно сложными, от-
вечающими условиям задачи и намерениям программиста. Листинг
демонстрирует
примеры использования операторов сложения, вычитания, присваивания, деления и
умножения.
Листинг
Примеры арифметических выражений с использованием переменных,
операторов и операндов
Dim A As Integer
2: А = О
3: А = 5 + 3
4: А = 6 \ 2
5: А = 5 - 3
6: А = 16
16
В строке 1 объявляется переменная А. Строка 2 иллюстрирует присвоение пере-
менной А значения 0. В правой части выражения находится значение 0, а слева от
оператора присваивания (=) расположен идентификатор переменной — А. В процессе
присвоения в переменную, стоящую слева от оператора, заносится значение, указан-
ное справа. Левую часть операторов присваивания принято называть
lvalue, а
пра-
вую —
rvalue.
При выполнении операций присваивания в качестве
rvalue
может ис-
2-й час. Познакомимся с VBA
45

пользоваться константа (скажем, 5), значение другой переменной или результат опе-
рации. Строка 3 демонстрирует присваивание результата операции сложения. Вначале
Access выполняет сложение (5 + 3), а затем его результат присваивает
переменной А. Таким образом, после выполнения строки 3 кода в переменной А будет
храниться число 8. В процессе операции, определяемой строкой 4, переменной А бу-
дет присвоено значение 3. Выполнение следующей строки — 5 — приведет к занесе-
нию в А значения 2, а после завершения операции, указанной в строке 6, А приобре-
тет значение 196.
Листинг 2.1 демонстрирует основы арифметических рпераций. Хотя подобный на-
бор строк кода вряд ли может иметь смысл в практике реального программирования,
он полезен с методической точки зрения. Впрочем, вы можете запросто объединить
несколько операторов в единую цепочку. Например, А = 5 +
+
16 — вполне допустимое выражение. Однако будет лучше, если вы постараетесь уп-
рощать выражения.
Если арифметическое выражение содержит много переменных, констант и опера-
торов,
применять круглые скобки, которые помогут недвусмысленно
разъяснить системе ваши намерения. Например, выражение А = 5 +
+
16 * 16, — это, на самом деле, А = (5 + 3) •• (6 \ 2) + ( 1 6 * 1 6 ) .
Арифметические операторы Access подчиняются тем же правилам приоритета вы-
полнения, что и в традиционной математике. Операции умножения и деления имеют
более высокий приоритет (т.е. выполняются раньше), чем сложение и вычитание.
Операторы сравнения
Операторы сравнения — <, <=, >, >=, = и о — были упомянуты ранее, в табл. 2.2.
Все они относятся к разряду бинарных. Каждый из операторов сравнения предполагает
наличие значений
lvalue
и
rvalue.
Результат выполнения оператора сравнения — величи-
на типа Boolean, принимающая одно из значений, True (истина) или False (ложь).
Новый
Переменные типа Boolean способны хранить одно из двух значений -
True или False. Своим происхождением и именем они обязаны англий-
скому математику Джорджу Булю (George Boole), разработавшему основы
алгебры логики, именованной позднее
булевой.
Булева алгебра устанавли-
вает законы поведения объектов, которые способны принимать два со-
стояния — True ИЛИ False.
Листинг 2.2 демонстрирует, каким образом можно присвоить результат выполне-
ния оператора сравнения переменной типа Boolean.
Листинг 2.2. Примеры операторов сравнения
1: Dim Result As Boolean
2: Result
5 > 4
3: Result
4: Result = 4 <= 7
Смысл некоторых языковых объектов VBA зависит от контекста их
употребления. Так, например, строку 3 листинга 2.2 следует трактовать
таким образом: результат выполнения оператора сравнения (=) двух
чисел, 6 и 7 (а это значение False) присваивается (=) переменной Re-
sult, которая ранее была объявлена как булева.
46
Часть I. Азбука программирования в Access

Строка 1 содержит объявление переменной Result типа Boolean. В строке 2 осуще-
ствляется проверка, действительно ли число 5 превосходит число
Результат, True
(истина), присваивается переменной Result. Итог False (ложь) проверки равенства чи-
сел 6 и 7 присваивается переменной после выполнения строки 3 кода. Осуществляя
операцию сравнения, содержащуюся в строке 4, система обнаружит, что число 4 на са-
мом деле не больше числа 7, и поэтому присвоит переменной Result значение True.
Логические операторы
Логические операторы, перечисленные в табл. 2.4, применяются при выполнении
действий над булевыми величинами. Логические выражения — как и арифметические -
могут быть довольно простыми или настолько сложными, насколько это необходимо.
Некоторые примеры логических операторов приведены ниже, в тексте листинга 2.3.
Таблица 2.4. Логические операторы VBA
Обозначение
Описание
And Бинарный оператор; если оба
операнда равны True, результат также равен
True; в противном случае результат равен False
Eqv Оператор побитового сравнения
Оператор импликации (бинарной логической связки)
Not Унарный оператор отрицания (например, Not True есть False, a Not
False — True)
Or Бинарный оператор; если хотя бы один из его операндов равен True, то ре-
зультат также равен
Бинарный оператор; результат равен True, если выражения левой (lvalue) и
правой (rvalue) частей различны
Листинг 2.3. Примеры логических операторов
1: Dim Test As Boolean
2: Test = True And False
3: Test = False Or False
4: Test = Not (5 > 4)
5: Test =
> 3.1459) And (YourValue <=
Or True
В строке 1 листинга 2.3 объявляется булева переменная Test. После выполнения
строки 2 Test принимает значение False. Результат вычисления выражения False
Or False, приведенного в строке 3, равен False. Выражение (5 > 4) строки 4 ис-
тинно, но его отрицание дает итог False, который и присваивается переменной Test.
Результат вычисления выражения строки 5 всегда истинный, независимо от значений
числовых переменных MyValue и YourValue, поскольку выражение завершается кон-
струкцией Or True.
Старайтесь не создавать слишком сложных логических выражений — с
каждым вновь добавленным оператором они обнаруживают тенденцию
выйти за пределы понимания. Вычисляйте каждое элементарное логи-
ческое выражение в отдельной строке кода.
2-й час. Познакомимся с VBA
47

Результаты выполнения логических операторов обычно представляют в виде
таб-
лиц истинности,
которые вы сможете отыскать в оперативной справочной системе Ac-
cess. Таблицы истинности помогут проверять создаваемые логические выражения.
Конечно, не помешают и знания основ математической логики (например автор дан-
ной книги, будучи студентом университета штата Мичиган, изучал курс дискретной
математики). При построении логических выражений целесообразно по возможности
их упрощать и использовать круглые скобки, уточняющие смысл высказывания.
Операторы конкатенации строк
К операциям со строками придется обращаться очень часто. String — это тип
данных, позволяющий хранить непрерывные последовательности символов. При кон-
катенации (или сложении строк) одна строка присоединяется в конец другой.
Существует два оператора сложения строк. Они обозначаются символами
плюс
(+)
и
(&). Оба оператора бинарны. Просмотрите фрагмент кода, представлен-
ный листингом 2.4.
Листинг 2.4. Примеры сложения строк
1: Dim A As String
2: А = "Здравствуй,
3 : А =
Здравствуй,
+
' &
В строке 1 объявляется переменная А типа string. В строках 2 и 3 используются
операторы сложения, "склеивающие" две строки ("Здравствуй,
и
в еди-
ное целое, и
строка "Здравствуй,
— присваивается переменной
А. В этом примере конечные результаты применения обоих операторов сложения
строк — + и & — совершенно равноценны.
Отличие оператора & состоит в том, что он способен превращать значения любого
встроенного типа данных в строку. Поэтому сложение строки "Мне уже
с числом 5
посредством оператора & даст в результате строку "Мне уже 5". Оператор & осущест-
вляет неявное преобразование значений всех встроенных типов данных в значение
типа String. Примеры вы найдете в листинге 2.5.
Новый термин
Встроенным
называется тип данных, изначально определенный в языке
программирования (в
Access
Листинг 2.5. Примеры использования оператора &
Dim A As String
А = "Мне уже
& 5
3 : MsgBox A
4:
А = "Мне уже
+
5 )
MsgBox A
Результаты выполнения строк 2 и 4 равносильны. В обоих случаях переменной А
присваивается строка "Мне уже 5". Символ
исключает необходимость
обращения к встроенной функции Str (
осуществляющей явное преобразование
числа в строку. (Подробнее о встроенных функциях см. главу "8-й час. Декомпозиция
Оператор конкатенации строк, обозначаемый символом
процесс преобра-
зовании типов проводит самостоятельно.
48
Часть I. Азбука программирования в Access

Шаг вперед
Служебные слова, операторы и переменные — обязательные компоненты любых
программ. Помимо них при создании программы вам понадобятся и другие
"строительные" материалы — функции и подпрограммы, пользовательские типы дан-
ных, классы и их объекты.
Ознакомившись с материалом главы 8, вы научитесь создавать и использовать
подпрограммы и функции. Из главы "10-й час. Как использовать готовые решения"
вы узнаете об обширной библиотеке стандартных функций Microsoft Access и о спосо-
бах их применения. Глава
час. От сложного к простому: создание собственных
типов данных" рассказывает о тонкостях определения пользовательских типов дан-
ных. А главой "21-й час. Основы программирования классов" начинается раздел, по-
священный вопросам объектно-ориентированного программирования в среде Access.
Научившись создавать функции и подпрограммы, вы сможете успешно решать
многие практические задачи бизнеса. Но чтобы получить доступ к самым мощным и
эффективным средствам программирования для Access, вам, однако, понадобятся
знания в области объектно-ориентированного программирования, владение такими
понятиями, как класс, объект и компонент.
Резюме
Решение задачи можно представить в виде схемы, соответствующей принципу "от
простого к сложному": выражение
блок кода
готовая программа. В ходе этого
занятия вы имели возможность ознакомиться с элементами низшего структурного
уровня программы — выражениями. Выражения обычно состоят из служебных слов,
переменных и операторов. На основе выражений строятся все программы.
На этом занятии вы научились пользоваться операторами (сведения об арифмети-
ческих операторах, собственно говоря, наверняка не стали для вас большим открове-
нием). Мы рассмотрели наиболее употребительные служебные слова Access VBA и
рассказали о способах объявления и инициализации переменных.
Переменная
— это именованная область компьютерной памяти, предназначенная
для хранения объекта данных определенного типа. Выбор типа данных зависит от ус-
ловий задачи и путей ее эффективной практической реализации. Наиболее часто ис-
пользуемые типы данных — String и Integer. Таким образом, вы получили сведе-
ния об основных операторах для работы с числами и строками.
Прежде чем приступить к решению практических задач, целесообразно ознако-
миться со способами создания функций и подпрограмм.
Вопросы и ответы
Вопрос. Мне необходимо объявить переменную для хранения чисел с плавающей точ-
кой. Что следует делать?
Ответ.
счастью, правила объявления переменных в VBA едины и просты
(вспомните материал раздела "Данные: сведения, известные программе"). Начните
выражение со служебного слова Dim, затем укажите имя переменной, введите служеб-
ное слово As и, наконец, задайте тип Double.
Вопрос. Можно ли преобразовать строку символов (например, такую как
в значение типа Date?
Ответ. Да. Access VBA предлагает целый ряд встроенных функций, предназначенных
для взаимного преобразования данных различных типов. Функция Format — наиболее
2-й час. Познакомимся с VBA 49