• встроенные и системные константы обеспечиваются инструментальными приложениями и элементами управления. Константы содержатся в объектных библиотеках Access, Visual Basic для приложений (VBA) и DAO. Просмотреть и выбрать их можно в окне Просмотр объектов. Другие приложения, которые содержат объектные библиотеки, такие как Microsoft Excel и Microsoft Project, также предоставляют наборы констант, которые можно адресовать через окно диалога Ссылки и использовать с объектами, методами и свойствами этих приложений. Константы также определены в библиотеке объектных модулей для каждого элемента управления ActiveX;
• символические, или пользовательские, константы, объявляемые в инструкции Const.
В Visual Basic имена констант приводятся в формате смешанного регистра, с префиксом, указывающим библиотеку объектных модулей, в которой данная константа определена. Имена констант объектных библиотек Visual Basic и Visual Basic для приложений предваряются префиксом "Vb" — например, vbTileHorizontal. Константы из объектной библиотеки доступа к данным DAO содержат префикс "db" — например, dbRelationUnique, а константы Access — префикс "Ас", например, AcDataTransferType.
Префиксы предназначены для предотвращения случайных конфликтов в ситуациях, когда константы имеют идентичные имена, но представляют различные значения. Однако, даже с префиксами, возможны случаи, когда две объектные библиотеки содержат идентичные константы с разными значениями. Какая константа в этом случае будет адресоваться, зависит от того, у какой библиотеки выше приоритет. Изменить приоритет объектных библиотек можно кнопками Приоритет в окне диалога Ссылки меню Сервис.
Чтобы быть абсолютно уверенным в отсутствии пересечений имен констант, можно квалифицировать обращения к константам со следующим синтаксисом:
[имя_библиотеки.][имя_модуля.]имя_константы
имя_библиотеки— обычно имя класса элемента управления или библиотеки.
имя_модуля— имя модуля библиотеки, в котором определена константа.
имя_константы — имя константы. Каждый из этих элементов определен в библиотеке объектных модулей и может быть доступен в окне Просмотр объектов.
Создание пользовательских констант. Синтаксис объявления пользовательской константы следующий:
[Public|Private] Const имя _ константы [As тип ] = выражение
Параметр имя_константы — допустимое символическое имя (правила — те же, что и для имен переменных); выражение составляется из числовых или строковых констант и операторов. В выражении, однако, нельзя использовать обращения к функциям.
Инструкцией Const можно объявлять:
• математическое значение, дату/время:
Const conPi = 3.14159255358979 Public Const conPlanets As Integer = 9
Const conDate = #1/1/97#
• строковые константы:
Public Const conVersion = "08.10.A"
Const conName = "Access"
В одной инструкции можно объявить несколько констант, отделяя их запятыми:
Public Const conPi = 3.14, conPlanets = 9, conRussiaPop = 1.7E+08
Выражение справа от знака равенства (=) — число или литеральная строка, но это может быть и выражение, значением которого также является число или строка. Определять константы можно так же с привлечением ранее определенных констант: Const conPi2 = conPi * 2
Тип данных Variant
Переменная Variant способна хранить все определенные системой типы данных. Выполнять преобразования между этими типами данных нет необходимости — при взаимных присвоениях переменных Variant Visual Basic автоматически выполняет любое необходимое преобразование. Например:
Dim VarVariant ' Variant по умолчанию
VarVariant = "20" ' VarVariant содержит "20" (двухсимвольная строка).
VarVariant = VarVariant + 77 ' VarVariant теперь содержит числовое значение 97
VarVariant = "Access " & VarVariant ' VarVariant теперь содержит ' "Access 97" (строка)
Хотя с переменными Variant можно выполнять операции, не задумываясь о виде данных, который они содержат, с этим типом данных связаны некоторые нюансы, которые следует всегда иметь в виду:
• при выполнении с данными Variant арифметических операций или функций, переменные Variant должны содержать нечто, что может интерпретироваться как число;
• при сцеплении строк нужно использовать операцию & вместо операции +.
В дополнение к способности работать подобно другим стандартным типам данных переменные Variant могут также содержать четыре специальных значения: Empty, Null, Nothing и Error.
Значение Empty. Иногда требуется узнать, было ли переменной когда-либо присвоено значение. До присвоения значений переменная Variant имеет значение Empty — специальное значение, отличное от 0, строки нулевой длины ("") или значения Null. Протестировать переменную на значение Empty можно функцией IsEmpty:
If IsEmpty(Z) Then Z = 0
Когда Variant содержит значение Empty, его можно использовать в выражениях; в зависимости от выражения это значение обрабатывается либо как 0, либо как строка нулевой длины.
Значение Empty исчезает, как только переменной Variant присвоено любое значение (включая 0, нулевую строку или Null). Установить переменную Variant обратно в Empty можно присвоением переменной ключевого слова Empty.
Значение Null. Тип данных Variant может содержать другое специальное значение: Null. Null обычно используется в приложениях базы данных для обозначения неизвестных или отсутствующих данных. Из-за способа его использования в базах данных значение Null имеет некоторые специфические особенности:
• выражения, включающие Null, всегда возвращают Null. Таким образом, Null, какговорят, "размножается" по выражению; если часть выражения оценивается как Null,все выражение оценивается как Null;
• при передаче Null, Variant, содержащего Null, или выражения, которое оцениваетсякакNull, в качестве параметра функций большинство функций возвращает Null;
• значения Null размножаются через встроенные функции, которые возвращают тип данного Variant.
Присвоить Null можно ключевым словом Null:
Z = Null
Для выяснения, содержит ли Null переменная Variant, используется функция IsNull:
If IsNull(X) And IsNull(Y) Then
Z = Null
Else
Z = 0
End If
При попытке присвоить Null переменной любого типа, отличного от Variant, происходит ошибка периода выполнения.
Переменные не получают значение Null помимо явного присвоения, поэтому, если в приложении Null не используется, вводить код для проверки и управления этим значением нет необходимости.
Значение Error. Error в переменных Variant— специальное значение, используемое для индикации того, что в процедуре имеет место условие ошибки. Однако, в отличие от других видов ошибок, нормальная обработка ошибок уровня приложения в данном случае не происходит. Это дает разработчику в работе с ошибками дополнительные возможности. Значения Error создаются с помощью функции CVErr преобразованием вещественных чисел к значениям ошибок.
Функция CVErr используется, в частности, для создания пользовательских ошибок в пользовательских процедурах. Например, пусть имеется функция, которая принимает несколько параметров и нормально возвращает строковое значение, если входные параметры попадают в некоторый интервал значений. Если это не так, то, вероятно, функция не вернет нормальный результат. В этом случае с помощью CVErr можно вернуть некоторый пользовательский номер ошибки.
Специальное значение Nothing используется при работе с объектами, о чем речь ниже.






