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

В практике программирования часто возникают неприятные ситуации, связанные
с непредвиденными изменениями значений переменных. Но константы не подверже-
ны подобной опасности, поскольку в ходе выполнения программы их значения — по
определению — остаются постоянными. Константы — это величины, на которые
всегда можно положиться. Применяйте их настолько активно, насколько это возмож-
но и целесообразно. Только оставив за плечами сложные программные проекты, вы
сможете по-настояшему оценить, что такое надежность кода.
Глобальные переменные
Переменные, объявленные посредством служебного слова Global, могут
адресоваться в любом месте кода программы. Синтаксис объявления гло-
бальных переменных таков:
Global
As ТипДанных
Объявляя собственную глобальную переменную, дайте ей
имя и укажите нужный тип данных. Значение переменной Global может
изменяться в любой строке кода программы. Программа, содержащая
большое число глобальных переменных, становится трудной для воспри-
ятия, поэтому имеет смысл использовать их только в тех случаях, когда
это действительно необходимо.
В ходе программирования конкретного участка кода вы задумываетесь над теку-
щими значениями переменных. Если переменная глобальна, ее значение может быть
изменено командами другого блока кода. Поэтому ваши исходные предположения
подвержены угрозе непредсказуемого нарушения. Чтобы уменьшить вероятность слу-
чайного искажения содержимого глобальных переменных, вы как программист долж-
ны предпринять дополнительные меры.
Присваивание данных и вычисления
Переменные в программе могут использоваться в качестве обоих операндов
(левого или правого) различных операторов, а также параметров функций и подпро-
грамм. Если переменная находится слева (справа) от символа оператора, ее называют
левым (правым) операндом.
Новый термин
Новый термин
Функция —
это содержащий одну или несколько команд блок кода, кото-
рый адресуется по имени. Функция обычно возвращает значение опреде-
ленного типа.
Подпрограмма
(или
процедура) —
это также блок кода, который содержит
одну или несколько команд. Однако подпрограмма не может возвращать
значения.
Параметр
(или
аргумент) —
это переменная, которая передается в функ-
цию или процедуру. Параметр может принимать участие в вычислениях
и изменяться командами функции (процедуры).
Оператор присваивания обозначается символом равенства
и заносит в левый
операнд-переменную значение правого операнда-выражения. В тексте листинга 3.1
приведено пять примеров операторов присваивания и вычислений.
3-й час. Как программа работает с данными 55

Листинг
Примеры операторов присваивания и вычислений
1: Dim
As Double
Dim Radius As Double
3: Const PI
3.14159
4: Radius = 10
5:
= PI * Radius 2
Строка кода — это буквально одна строка текста, но выражение может
быть простым или составным, т.е., другими словами, оно может
содержать более одной строки текста.
Строка 1 листинга
служит для объявления переменной
типа
Double. В строке 2 объявляется переменная Radius того же типа. Строка 3 содержит
объявление константы PI, равной числу
л.
В строке 4 переменная Radius инициали-
зируется значением 10. В строке 5 вычисляется значение площади круга заданного
радиуса (PI * Radius 2), и результат присваивается переменной SquareOfCircle.
(Символ (знак вставки, или, как его называют в обиходе, крышки) — это обозначе-
ние оператора возведения в степень.)
Можно объявить несколько переменных одного типа посредством
единственного выражения, в котором имена переменных отделяются
запятыми. Например, Dim SquareOfCircle, Radius As Double.
Часто полагают, что все переменные, объявленные таким образом,
имеют один и тот же тип, но это неверно. В предыдущем примере
можно предположить, что и SquareOfCircle, и Radius имеют тип
Double. На самом деле переменная Radius имеет тип Double, a
— тип Variant.
Объявление постоянной величины с помощью служебного слова Const,
сопровождаемое присваиванием ей исходного значения, называют
инициализацией.
Многие такие термины способны ввести в заблуждение, но они
изобретены программистами с целью ясного и лаконичного выражения
мыслей. Хотя вы не обязаны освоить всю терминологию, все же лучше
ее знать — особенно в том случае, если приходится часто общаться с
коллегами-профессионалами.
Строки 3, 4 и 5 листинга 3.1 иллюстрируют операции присваивания. Элементы
строки 5 — переменные PI, Radius и константа-литерал 2 — это члены вычисляемого
выражения.
Будьте точны и до конца откровенны
Очень важно, чтобы написанный вами код в процессе выполнения "вел себя"
именно так, как вы предполагали. Существуют два правила, которым необходимо сле-
довать: старайтесь не применять переменные типа Variant и не пользоваться неявно
определенными переменными.
56
Часть I. Азбука программирования в Access

Тип данных Variant
О типе данных Variant вкратце рассказывалось в главе 2. Variant — встроенный
тип данных, применение которого приведет к лишним накладным расходам. Встретив
в тексте программы объявление переменной типа Variant, компилятор присоединяет
дополнительный код, который во время исполнения программы должен определить
действительный тип объекта данных. Переменные Variant находят применение в ко-
де стандартных библиотек Microsoft и объектов СОМ. Впрочем, в большинстве случае
предпочтительно избегать использования переменных variant и употреблять точные
и однозначные объявления. В этом случае ваши намерения будут выражены наиболее
четко и недвусмысленно, обеспечивая гарантии соответствия текущих значений типам
данных и допустимым диапазонам их изменения.
I Новый термин
СОМ
(сокращение от Common Object Model — общая модель объек-
тов) — это стандарт построения составных типов данных, которые могут
быть оформлены в виде отдельных самостоятельных блоков исполняе-
мого кода. Часто объекты СОМ называют компонентами.
Неявное определение переменных
Access допускает использование переменных, определенных неявно. Неявное оп-
ределение подразумевает, что переменная просто, без дополнительных объявлений,
вводится в точке ее использования. Листинг 3.2 представляет собой исправленный ва-
риант листинга
— все переменные теперь определяются неявно.
Листинг 3.2. Пример неявного определения переменных
1: Const PI = 3.14159
2: Radius = 10
3:
= PI
* Radius
Обратите внимание, что в тексте листинга отсутствуют какие бы то ни было выра-
жения объявлений. Переменные Radius и SquareOfCircle вводятся в действие без
дополнительных разъяснений относительно их типов. На первый взгляд, ничего нега-
тивного в таком подходе нет — программа, как и прежде, справится с задачей вычис-
ления площади круга. Но если код приобретет более внушительные размеры — ска-
жем, до нескольких сотен строк, — ситуация может резко измениться к худшему. Вы
должны принять к сведению, что подобная практика может осуществляться, но поста-
райтесь избежать ее использования.
В первой строке модуля программы, как правило, должна содержаться команда
Option Explicit. Пользуйтесь ею всегда. Она гарантирует вам и коллегам, рабо-
тающим с вашим кодом, невозможность введения в обращение неявно определенных
переменных.
Новый термин
Модуль —
это отдельный файл, содержащий текст на языке программи-
рования Access VBA.
Если, введя в начало текста программы команду Option Explicit, вы затем по-
пытаетесь воспользоваться неявно определенной переменной, Access откроет окно со-
общения об ошибке, показанное на рис.
3-й час. Как программа работает с данными
57

x %
В*
- - Я х
Ч
Option
c.
При попытке неявного задания переменной система отображает окно сообще-
ния об ошибке
Конечно, легко воздержаться от использования неявно определенных переменных
в том случае, если программа невелика. Но решение любой серьезной задачи требует
написания немалого количества строк кода, и тенденция к его росту — величина по-
стоянная. Если ваша программа достаточно пространна, важно привлечь на помощь
столько полезных средств, сколько окажется возможным. Одно из них — явное зада-
ние типов переменных.
Всплывающие подсказки в окне
редактора модуля Access
Теперь вы уже знаете, как объявлять переменные и составлять выражения. Прежде
чем перейти к более сложным темам, рассмотрим один важный инструмент среды
программирования Access, который поможет вам в управлении переменными.
среда разработки
Access (Integrated Development Environment, или IDE)
имеет в своем составе механизм
всплывающих подсказок.
Всплывающая подсказка — это
небольшое окно сообщения, которое автоматически появляется на экране всякий раз, ко-
гда курсор мыши
над фрагментом текста с наименованием переменной. Ме-
ханизм доступен только в режиме отладки. Итак, некоторые краткие пояснения.
Код сохраняется в файле модуля.
Модуль
— это файл Access, содержащий закон-
ченный блок текста на языке
Почти весь код программы — за исключением вы-
ражений, подобных Option Explicit, — размещается внутри функций или подпро-
58
Часть I. Азбука программирования в Access

грамм. (Более подробно функции и подпрограммы будут рассмотрены в главе "8-й
час. Декомпозиция
Сразу после написания хотя бы одной функции или под-
программы можно подвергнуть проверке текст строка за строкой.
Тестирование кода
Режим отладки
— это способ выполнения программы с возможностью одновремен-
ного просмотра состояний объектов профаммы. Подобную задачу можно выполнить, не
покидая окна редактора Microsoft Visual Basic. Поскольку
помимо Access, находит
применение в составе других офисных продуктов компании (например Excel), Microsoft
предлагает единый интерфейс
и отладки кода (рис. 3.2). В окне ре-
дактора Visual Basic — значительное количество заслуживающих внимания компонен-
тов — немудрено и растеряться, — но несколько примеров вам наверняка помогут.
X
т
)
:
Option
Option
(}
A - 5
Sub
• • '
Я
.
.
•
:
.
программ для Access набирается в окне редактора Microsoft Visual Basic
Чтобы открыть окно редактора, выполните следующие действия.
1. Запустите Access 2002 на выполнение.
2. Выберите в строке меню
или щелкните на ссылке Новая база
данных (Blank Database) на панели задач.
3. В диалоговом окне Файл новой базы данных (File New Database) задайте название
базы данных и щелкните на кнопке Создать (Create).
4. Выберите в списке
(Objects) окна База данных элемент Модули (Modules).
3-й час. Как программа работает с данными
59