Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2020

Просмотров: 7929

Скачиваний: 25

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

довательность символов алфавита и цифр (не более 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


background image

пользоваться константа (скажем, 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


background image

Строка 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


background image

Результаты выполнения логических операторов обычно представляют в виде

 таб-

лиц истинности,

 которые вы сможете отыскать в оперативной справочной системе 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


background image

Шаг вперед

Служебные слова, операторы и переменные — обязательные компоненты любых

программ. Помимо них при создании программы вам понадобятся и другие

"строительные" материалы — функции и подпрограммы, пользовательские типы дан-

ных, классы и их объекты.

Ознакомившись с материалом главы 8, вы научитесь создавать и использовать

подпрограммы и функции. Из главы "10-й час. Как использовать готовые решения"
вы узнаете об обширной библиотеке стандартных функций Microsoft Access и о спосо-

бах их применения. Глава

 час. От сложного к простому: создание собственных

типов данных" рассказывает о тонкостях определения пользовательских типов дан-

ных. А главой "21-й час. Основы программирования классов" начинается раздел, по-

священный вопросам объектно-ориентированного программирования в среде Access.

Научившись создавать функции и подпрограммы, вы сможете успешно решать

многие практические задачи бизнеса. Но чтобы получить доступ к самым мощным и

эффективным средствам программирования для Access, вам, однако, понадобятся

знания в области объектно-ориентированного программирования, владение такими

понятиями, как класс, объект и компонент.

Резюме

Решение задачи можно представить в виде схемы, соответствующей принципу "от

простого к сложному": выражение

 блок кода

 готовая программа. В ходе этого

занятия вы имели возможность ознакомиться с элементами низшего структурного

уровня программы — выражениями. Выражения обычно состоят из служебных слов,

переменных и операторов. На основе выражений строятся все программы.

На этом занятии вы научились пользоваться операторами (сведения об арифмети-

ческих операторах, собственно говоря, наверняка не стали для вас большим открове-

нием). Мы рассмотрели наиболее употребительные служебные слова Access VBA и

рассказали о способах объявления и инициализации переменных.

Переменная

 — это именованная область компьютерной памяти, предназначенная

для хранения объекта данных определенного типа. Выбор типа данных зависит от ус-

ловий задачи и путей ее эффективной практической реализации. Наиболее часто ис-

пользуемые типы данных — String и Integer. Таким образом, вы получили сведе-
ния об основных операторах для работы с числами и строками.

Прежде чем приступить к решению практических задач, целесообразно ознако-

миться со способами создания функций и подпрограмм.

Вопросы и ответы

Вопрос. Мне необходимо объявить переменную для хранения чисел с плавающей точ-

кой. Что следует делать?

Ответ.

 счастью, правила объявления переменных в VBA едины и просты

(вспомните материал раздела "Данные: сведения, известные программе"). Начните

выражение со служебного слова Dim, затем укажите имя переменной, введите служеб-
ное слово As и, наконец, задайте тип Double.

Вопрос. Можно ли преобразовать строку символов (например, такую как

в значение типа Date?

Ответ. Да. Access VBA предлагает целый ряд встроенных функций, предназначенных

для взаимного преобразования данных различных типов. Функция Format — наиболее

2-й час. Познакомимся с VBA 49