Константы


В этом разделе описываются константы в их явном представлении. Кроме явного представления константы могут быть именованными. Именованные константы создаются пользователем и используются в программах на Visual Basic для приложений (VBA). Кроме того, Access имеет много встроенных констант, имена которых рассматриваются как зарезервированные слова и не могут использоваться для других целей.
Access различает три вида констант: числовые, строковые и константы даты и времени.

  • Числовыми константами называются последовательности цифр, и, при необходимости, символы знака числа (+) и (-), символ десятичной точки (.) и, для записи числа в экспоненциальной нотации, символы порядка (Е) или (е). Для положительного числа знак (+) необязателен.

Пример записи числовых констант: 12345; -12.345; -6.76Е-23.

  • Строковыми или текстовыми константами называются любые символы, возвращаемые функцией Chr$ (), и их комбинации. Функция Chr$ (} возвращает символ в кодировке таблицей кодов ANSI, которой пользуется Windows. Кроме печатаемых символов, в которые входят буквы, цифры, знаки пунктуации и другие специальные символы клавиатуры, например "@", "~" и т. п., результатом функции могут быть и управляющие символы, такие как символ табуляции <ТаЬ>, возврат каретки и перевод строки, аналогичный по результату нажатию клавиши <Enter> и др. Печатаемые символы должны быть заключены в двойные прямые кавычки. Часто, например при вводе строковых констант в ячейки таблиц или бланки запросов, Access сам добавляет кавычки, в иных случаях это придется сделать вручную.

Примером сложной строковой константы может служить выражение:
Chr$(9) & "Отступ" & Chr${10)& Chr$(13)& "Новая строка"
Здесь Chr$ (9) — символ табуляции <Tab>; Chr$ (10), символ возврата каретки; Chr$(13), символ перевода строки. Все подстроки объединены с помощью оператора конкатенации.

  • Константы даты/времени в Access выделяются символами #. Как и в случае остальных констант, если программа распознает ввод в бланк запроса даты или времени в стандартном формате Access, эти символы будут добавлены автоматически.

Пример констант даты и времени: #26/04/75#, #22-Маг-74#, #10:35:30#.
 

 

Функции
Функция так же, как и идентификатор, используется для возвращения значения в точку вызова. Значение, возвращаемое функцией, определяется ее типом, например функция NOW () возвращает дату и время часов компьютера. Синтаксически функция выделяется круглыми скобками, следующими сразу же за ее идентификатором. Многие функции требуют наличия аргументов, которые записываются в этих скобках через запятую при обращении к функции. Функции можно использовать для создания нового выражения или функции. (Об использовании функций рассказывается.)
Встроенные в Access функции можно сгруппировать по следующим категориям (забегая вперед, скажем, что именно так они сгруппированы в специальном инструменте, помогающем правильно создавать сложные выражения, который называется Построитель выражений (Expression Builder)).

  • Функции работы с массивами — используются для определения границ размерностей массивов при программировании на VBA.
  • Функции преобразования типов данных — применяются для преобразования одного типа данных в другой. Например, для преобразования числа в строку служит функция str (), а обратно — функция val ().
  • С помощью функций работы с объектами баз данных осуществляется обращение к объектам баз данных: таблицам, запросам, формам, отчетам, макросам и модулям. Например, функция CurrentDB () возвращает ссылку на объект Database, с которым работает Access в данный момент.
  • Функции даты и временислужат для проведения операций со значениями даты и времени. Например, функция DateDiff О вычисляет промежуток между двумя датами, а функция Date () возвращает значение текущей даты.
  • Функции динамического обмена данными (DDE) между приложениями Windows и функции работы с использованием технологии связывания и внедрения (OLE) (например, DDE() и DDESendO) — используются для перемещения данных из одного приложения в другое и обратно. Для приложений, поддерживающих технологию OLE, в частности Microsoft Office, особенно важными являются функции GetObject () и CreateObject (), с помощью которых начинается основная работа с любыми объектами.
  • Статистические функции SQL — используются чаще всего для многотабличных запросов как источника данных для форм. Статистические функции SQL возвращают статистические данные из записей, выбранных по запросу. Эти функции нельзя использовать в макросах или вызывать их из программ VBA иначе, как внутри выражений в кавычках, используемых в инструкциях SQL для создания объектов Recordset.

Статистические функции по подмножествам записей— это те же статистические функции SQL, но работающие по большей части с вычисляемыми значениями, а не со значениями, содержащимися в полях запросов.
Примером статистической функции SQL является stDev(), а соответствующей ей статистической функцией по подмножеству записей— DStDevf). Обе они вычисляют стандартное отклонение для заданного множества значений.

  • Функции обработки ошибок — используются, как следует из названия, для отслеживания ошибок. Например, функция Error () выводит сообщение об ошибке по ее номеру. Наличие таких функций в выражении можно считать признаком хорошего тона, поскольку используемое выражение, хоть и приводит к ошибочному результату, но продолжает вести себя корректно, не забыв предупредить пользователя.
  • Финансовые функции — идентичны своим двойникам в Microsoft Excel и используют те же аргументы. Например, функция Rate () возвращает процентную ставку, необходимую для получения путем регулярных взносов указанной суммы на базе имеющейся за определенный срок.
  • Функции общего назначения — используются в основном при программировании на VBA для извлечения вспомогательной информации и управления ходом выполнения программы. Например, функция Commando служит для извлечения аргументов командной строки при выполнении программы, написанной на VBA.
  • Функции сообщений и ввода/вывода — позволяют выводить сообщения или вводить новые данные, а также устанавливать различные параметры ввода/вывода. Иллюстрацией могут служить функция ввода данных inputBox () или функция проверки существования каталога или файла Dir ().
  • Функции проверки — особая группа функций, отвечающих на вопрос "является ли аргумент… ?". Например, IsNumericf) — возвращает True, если аргумент имеет один из числовых типов данных, и False — в противном случае; IsObject() — возвращает True, если аргумент— объект OLE Automation, и False — в противном случае.
  • Функции ветвления — используются для выбора из нескольких альтернатив. На них стоит остановиться подробнее.
    • IIf (Expr, Truepart, Falsepart) — возвращает значение выражения Truepart, если значение выражения Ехрг равно True, или значение выражения Falsepart, если значение Ехрг есть False. Особо важно то, что вне зависимости от значения выражения Ехрг, будут вычислены как выражение Truepart, так и Falsepart. Следует быть очень внимательным к возможным побочным эффектам, связанным с этой особенностью функции Ilf {). Отметим, что здесь, как и в большинстве функций, в качестве каждого из аргументов стоит выражение, которое, в свою очередь, тоже может быть сложным выражением.
    • Функция Choose () возвращает значение, соответствующее заданному положению в списке значений. Switch () возвращает значение, связанное с первым из последовательности выражением, имеющим значение True.
    • Функции Choose () и Switch() похожи на команду Select Case из VBA и других диалектов Basic.
  • Математические и тригонометрические функции — используются для выполнения простых (и неслишком) математических операций, например вычисления логарифма Log () или синуса числа Sin ().
  • Текстовые функции — позволяют проводить различные операции над строками. Например, функция Trim() возвращает строку, заданную в качестве аргумента, без начальных и заключительных пробелов.

Замечание
Еще раз обратим внимание, что описание всех функций (а их более 100) с подробными примерами выходит за рамки этой книги, тем более что справочная система Access и VBA предлагает развернутое изложение использования каждой функции, сопровождаемое примерами. При необходимости применения в дальнейшем изложении какой-либо незнакомой функции мы будем стараться кратко описать ее назначение и применение.