Операторы сравнения с образцом

Остальные операторы Access (табл. 6) упрощают создание выражений для выборки записей в запросах и относятся к операторам сравнения с образцом. Эти операторы возвращают True или False, в зависимости от соответствия значения в поле выбранной спецификации оператора. Наличие этих операторов в условиях на значение позволяет либо включать запись в запрос, если логическое значение, возвращаемое выражением, равно True, либо отвергать, если это значение — False.

Таблица 6.Другие операторы, используемые в выражениях Access

Оператор Пример Описание
Between Between (-100) And (100) Определяет, находится ли числовое значение в определенном диапазоне значений
Is Is Null Is Not Null При использовании вместе с Null определяет, является ли значение Null или Not Null
In In ("Москва", "Киев", "Санкт-Петербург") Определяет, является ли строковое значение элементом списка значений
Like Like "Ив*" Like "db??" Определяет, начинается ли строковое значение с указанных символов (для правильной работы Like нужно добавить символ шаблона "*" или один или несколько символов "?")

Оператор Like. Символ "*" замещает любое число знаков, а символ шаблона "?" замещает только один знак, поэтому Like "Ив*" вернет True для значений "Иванов", "Иващенко", "Иволгин". Для "dbl" или "dbl00" значение оператора Like "db??" будет False, но тот же оператор вернет для "dbl0" и "dbXX" значение True. Символы шаблона "*" и "?" могут стоять в любом месте шаблонной строки. Например:

  • Like "*ms* . ?*" — возвращает True только для значений, содержащих в своем теле подстроку "ms", после которой (может быть сразу, а может быть через несколько символов) следует не менее двух символов, первый из которых точка (.);
  • Like "?1???*" — возвращает True только для значений, состоящих не менее чем из пяти символов, вторым из которых является "1".

Идентификаторы объектов

Любой объект Access имеет имя, по которому его можно однозначно идентифицировать в некоторой системе объектов. Кроме обозначения коротким именем объекта, идентификатор можно обозначить квалифицированным (или полным} именем, когда объект идентифицируется как один из объектов в семействе объектов. В этом случае имя идентификатора состоит из имени семейства (класс объекта), отделенного от присвоенного имени (имени объекта) восклицательным знаком или точкой (символами операции идентификации "!" и ".").

Примечание: В SQL разделитель имен объектов — точка, в Access для разделения имен таблиц и имен полей используется "!", а точка разделяет объекты и их свойства. Поэтому имена объектов не должны содержать символов "!" и ".".

Используя идентификаторы, можно возвращать значения полей в объекты форм и отчетов, а также строить новые выражения.

Константы

Кроме явного представления константы могут быть именованными. Именованные константы создаются пользователем и используются в программах на 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. Следует быть очень внимательным к возможным побочным эффектам, связанным с этой особенностью функции IIf (). Отметим, что здесь, как и в большинстве функций, в качестве каждого из аргументов стоит выражение, которое, в свою очередь, тоже может быть сложным выражением.
    • Функция Choose () возвращает значение, соответствующее заданному положению в списке значений. Switch () возвращает значение, связанное с первым из последовательности выражением, имеющим значение True.
    • Функции Choose () и Switch() похожи на команду Select Case из VBA и других диалектов Basic.
  • Математические и тригонометрические функции — используются для выполнения простых (и неслишком) математических операций, например вычисления логарифма Log () или синуса числа Sin ().
  • Текстовые функции — позволяют проводить различные операции над строками. Например, функция Trim() возвращает строку, заданную в качестве аргумента, без начальных и заключительных пробелов.

Наши рекомендации