что означает символ в шаблоне запроса access
Что означает символ в шаблоне запроса access
Одним из основных инструментов обработки данных в СУБД являются запросы. В Microsoft Access имеется удобное для пользователя графическое средство формирования запроса по образцу — QBE (Query By Example), с помощью которого легко может быть построен сложный запрос.
С помощью запроса можно выполнить следующие виды обработки данных:
Последовательное выполнение ряда запросов позволяет решать достаточно сложные задачи, не прибегая к программированию.
В Access может быть создано несколько видов запроса:
Окно запроса
Схема данных запроса
В окне запроса отображаются выбранные таблицы и связи между ними, имеющиеся в схеме данных базы. Связи для объединения, которые не может установить Access автоматически, может создать пользователь, перетащив задействованные в связи поля из одного списка полей в другой.
Бланк запроса по образцу
Бланк запроса по образцу представлен в виде таблицы в нижней панели окна запроса. До формирования запроса эта таблица пуста.
Каждый столбец бланка относится к одному полю, с которым нужно работать в запросе. Поля могут использоваться для включения их в результат выполнения запроса, для задания сортировки по ним, а также для задания условий отбора записей.
При заполнении бланка запроса необходимо:
Поля бланка запроса
Каждый столбец бланка запроса соответствует одному из полей таблиц, на которых строится запрос. Кроме того, здесь может размещаться вычисляемое поле, значение которого вычисляется на основе значений других полей.
Для включения нужных полей из таблиц в соответствующие столбцы запроса можно воспользоваться следующими приемами:
После завершения конструирования запроса, его можно открыть для просмотра. Форма просмотра запроса — табличная. Однако, это таблица виртуальная, т.е. формируемая в оперативной памяти при открытии запроса. Например, для окна конструктора, показанного выше, получим следующую таблицу:
Условия отбора записей
Литералом является значение, воспринимаемое буквально, а не как значение переменной или результат вычисления, например, число, строка, дата.
Константами являются не изменяющиеся значения, например, True, False, Да, Нет, Null (константы автоматически определяются в Access).
Текстовые значения в выражении вводятся в кавычках, если они содержат пробелы или знаки препинания. В противном случае кавычки можно не вводить, они будут добавлены автоматически.
Оператор Between позволяет задать интервал для числового значения. Например,
Between 10 And 100
задает интервал от 10 до 100.
Оператор In позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Например,
In («Математика», «Информатика», «История»)
Оператор Like позволяет использовать образцы, использующие символы шаблона, при поиске в текстовых полях. Например,
Условия отбора, заданные в одной строке, связываются с помощью логической операции «И», заданные в разных строках — с помощью логической операции «ИЛИ». Эти операции могут быть заданы явно в выражении условия отбора с помощью операторов AND и OR соответственно.
Сформировать условие отбора можно с помощью построителя выражений. Перейти в окно Построитель выражений можно, нажав кнопку Построить на панели инструментов, или выбрав команду Построить в контекстно-зависимом меню. Курсор мыши должен быть установлен в ячейке ввода условия отбора.
После ввода выражения в бланк и нажатия клавиши Enter Access выполняет синтаксический анализ выражения и отображает его в соответствии с результатами этого анализа.
Руководство по синтаксису выражений
В Microsoft Access часто приходится работать со значениями, которые не хранятся непосредственно в базе данных. Например, вам может потребоваться вычислить налог с оборота для заказа или итоговую сумму заказа. Такие значения вычисляются с помощью выражений. Чтобы использовать выражения, их следует записать, используя правильный синтаксис. Синтаксис — это набор правил, по которым сочетаются слова и символы в выражении. Сначала выражения в Access могут показаться сложными для восприятия. Но если разобраться в их синтаксисе и немного попрактиковаться, работа с выражениями не вызовет затруднений.
В этой статье
Общие сведения о выражениях
Выражение — это сочетание некоторых или всех из следующих компонентов: встроенных или пользовательских функций, идентификаторов, операторов, значений и констант. Результатом вычисления выражения является одно значение.
Например, это выражение содержит все четыре указанных компонента:
Sum() — встроенная функция;
[Purchase Price] — идентификатор;
Это выражение можно использовать в текстовом поле в нижнем колонтитуле формы или отчета, чтобы вычислить налог с продаж для группы товаров.
Выражения могут быть гораздо сложнее или проще данного примера. Например, следующее логический выражение состоит только из оператора и константы:
Это выражение возвращает следующие значения:
Вы можете использовать это выражение в свойстве ValidationRule (Правило проверки) элемента управления или поля таблицы, чтобы разрешить ввод только положительных значений. Выражения широко используются для вычислений, обработки символов и проверки данных. У всех объектов — таблиц, запросов, форм, отчетов и макросов — есть свойства, принимающие выражения. Например, для элемента управления можно использовать выражения в свойствах ControlSource (Данные) и DefaultValue (Значение по умолчанию). Вы также можете использовать выражения в свойстве ValidationRule (Правило проверки) поля таблицы.
Компоненты выражений
Чтобы создать выражение, следует объединить идентификаторы с помощью функций, операторов, констант и значений. Любое допустимое выражение должно содержать по крайней мере одну функцию или один идентификатор, а также может включать в себя константы или операторы. Выражение можно также использовать как часть другого выражения — обычно в качестве аргумента функции. Это называется вложением выражений.
Идентификаторы Общий вид:
Один из аргументов обычно представляет собой идентификатор или выражение. Для некоторых функций аргументы не нужны. Прежде чем использовать определенную функцию, ознакомьтесь с ее синтаксисом. Дополнительные сведения см. в статье Функции (по категориям).
Операторы Общий вид:
Существуют исключения, которые описаны в разделе Операторы.
Константы Общий вид:
Значения Значения могут использоваться в различных частях выражения.
Объекты, семейства и свойства
Все таблицы, запросы, формы, отчеты и поля в базе данных Access также называются объектами. У каждого объекта есть имя. Некоторые объекты уже имеют имена, например таблица «Контакты» в базе данных, созданной на основе шаблона «Контакты» Microsoft Office Access. При создании объекта ему следует дать имя.
Набор всех объектов определенного типа называется семейством. Например, набор всех таблиц в базе данных является семейством. Некоторые объекты, являющиеся частью семейства в базе данных, могут также быть семействами, содержащими другие объекты. Например, объект таблицы — это семейство, содержащее объекты полей.
Объекты имеют свойства, которые описывают и позволяют изменять их характеристики. Например, у объекта запроса есть свойство Представление по умолчанию, описывающее отображение запроса при его выполнении и позволяющее настроить его.
На следующей схеме показана связь между семействами, объектами и свойствами:
Идентификаторы
При использовании семейства, объекта или свойства в выражении вы ссылаетесь на него с помощью идентификатора. Идентификатор содержит имена самого элемента и элемента, к которому он относится. Например, идентификатор поля включает в себя имя поля и имя таблицы, в которую оно входит. Пример такого идентификатора:
В некоторых случаях идентификатором служит само имя элемента. Это справедливо, если имя элемента уникально в контексте создаваемого выражения. Оставшаяся часть идентификатора подразумевается по контексту. Например, при создании запроса, использующего только одну таблицу, идентификатором может быть имя поля без имени таблицы, так как имена полей внутри таблицы уникальны. Так как используется только одна таблица, имя таблицы в любом идентификаторе, используемом в запросе для ссылки на поле, подразумевается.
В других случаях необходимо явно указать части идентификатора, чтобы ссылка работала. Это требуется, если идентификатор не является уникальным в контексте выражения. При наличии неоднозначности необходимо явно указать достаточно частей идентификатора, чтобы сделать его уникальным. Например, предположим, что вы создаете запрос, который использует таблицы «Товары» и «Заказы», и обе из них содержат поля КодТовара. В таком случае идентификатор, используемый в запросе для ссылки на поле КодТовара, должен включать имя таблицы в дополнение к имени поля. Например:
Операторы идентификаторов. Существуют три оператора, которые можно использовать в идентификаторах:
оператор «квадратные скобки» ( [ ] ).
Строго говоря, не всегда обязательно заключать идентификатор или его части в квадратные скобки. Если в идентификаторе не содержится пробелов или других специальных знаков, квадратные скобки будут добавлены автоматически. Однако самостоятельное включение квадратных скобок является хорошей практикой, так как позволяет избежать ошибок, а также служит визуальным обозначением идентификатора в выражении.
Функции, операторы, константы и значения
Чтобы создать выражение, следует указать не только идентификаторы, но также и действие, которое требуется выполнить. Для выполнения действий в выражении используются функции, операторы и константы.
Функции
Функция представляет собой процедуру, которую можно использовать в выражении. Некоторые функции, такие как Date, не требуют входных данных, однако большинству функций нужны аргументы.
В следующем списке приведено несколько функций, часто используемых в выражениях. Для получения дополнительных сведений о синтаксисе функции щелкните ее ссылку.
Функция Date позволяет вставить текущую системную дату в выражение. Она обычно используется в сочетании с функцией Format и с идентификаторами полей, содержащих значения даты и времени.
С помощью функции DatePart можно задать или извлечь часть даты, которая обычно берется из поля, заданного идентификатором, но также может возвращаться другой функцией, например Date.
Функция DateDiff используется для определения разницы между двумя датами. Обычно это дата, которая берется из поля, заданного идентификатором, и дата, возвращаемая функцией Date.
Функция Format позволяет применить формат к идентификатору или к результату другой функции.
Функция IIf оценивает выражение как истинное или ложное, а затем возвращает одно значение, если выражение истинно, или другое, если оно ложно.
Функция InStr используется для поиска позиции знака или строка в другой строке. Искомая строка обычно берется из идентификатора поля.
Функции Left, Mid и Right используются для извлечения знаков из строки, начиная с первого символа (Left), определенной позиции в середине (Mid) или последнего символа (Right). Они часто используются в сочетании с функцией InStr. Строка, из которой извлекаются символы, обычно берется из поля, заданного идентификатором.
Список функций по категориям см. в этой статье.
Оператор
Оператор — это слово или символ, обозначающий определенную арифметическую или логическую операцию с элементами выражения. Существуют следующие типы операторов:
арифметические операторы, например знак «плюс» ( + );
операторы сравнения, например знак равенства ( = );
логические операторы, например Not ;
операторы объединения, например & ;
Операторы обычно используются для обозначения отношения между двумя идентификаторами. В приведенных ниже таблицах описаны операторы, используемые в выражениях Access.
Арифметические операторы используется для вычисления значения на основе нескольких чисел или изменения положительного знака числа на отрицательный.
Сложение двух чисел.
Вычисление разницы между двумя числами или вывод отрицательного значения числа.
Перемножение двух чисел.
Деление первого числа на второе.
Округление обоих чисел до целых, деление первого числа на второе и усечение результата до целого.
Возврат остатка от деления первого числа на второе.
[Зарегистрировано] Mod [Комнаты]
Возведение числа в указанную степень.
Операторы сравнения позволяют сравнивать значения. Они возвращают результат True (истина), False (ложь) или Null (неопределенное значение).
Определяет, что первое значение меньше второго.
Определяет, что первое значение не больше второго.
Определяет, что первое значение больше второго.
Определяет, что первое значение не меньше второго.
Определяет, что первое значение равно второму.
Определяет, что первое значение не равно второму.
Используйте логические операторы для объединения двух значений и возврата результата true (истина), false (ложь) или Null. Логические операторы также называются булевыми.
Возвращает значение «Истина», если выражения 1 и 2 имеют значение «Истина».
Возвращает значение «Истина», если хотя бы одно из выражений 1 и 2 имеет значение «Истина».
Возвращает значение «Истина», если оба выражения 1 и 2 имеют значение «Истина» или оба выражения 1 и 2 равны «Ложь».
Возвращает «Истина», если выражение не имеет значения «Истина».
Возвращает значение «Истина», если одно и только одно из выражений 1 и 2 имеет значение «Истина».
С помощью операторов объединения можно объединить два текстовых значения в одну строку.
Объединение двух строк в одну.
Объединение двух строк в одну и распространение значений Null.
Специальные операторы используются, как показано в следующей таблице:
Is Null or Is Not Null
Определяет, равно ли значение Null или Not Null.
Between val1 And val2
Определяет, находится ли число или дата в пределах диапазона.
Определяет, входит ли строковое значение в множество.
Константы
Константа — это известное постоянное значение, которое может быть использовано в выражении. В Access есть четыре часто применяемых константы:
True указывает, что что-то является логической истиной;
False указывает, что что-то является логической ложью;
Null указывает на отсутствие известного значения;
«» (empty string) указывает, что значение является пустым.
Значения
При использовании текстовых строк заключайте их в кавычки, чтобы они правильно интерпретировались Access. В некоторых ситуациях Access вводит кавычки за пользователя. Например, при вводе текста в выражение для правила проверки или условий запроса Access автоматически заключает текстовые строки в кавычки.
При использовании значений даты и времени заключайте значения в символы решетки ( # ). Например, #03.07.17#, #7-Мар-17# и #Мар-7-2017# — допустимые значения даты и времени. Когда приложение Access встречает допустимое значение даты и времени, заключенное в символы «#», значение автоматически обрабатывается как имеющее тип даты и времени.
Максимальное число уровней вложенности в веб-базах данных — 65
Выражения с более чем 65 уровнями вложенности не будут работать в браузере, поэтому их не следует использовать в веб-базах данных Access. Вы не увидите сообщение об ошибке — выражение просто не будет работать.
Использование подстановочных знаков в запросах и параметрах в Access
Эквивалент любого количества символов в любом месте строки данных
Откройте запрос в конструкторе. Для этого щелкните его правой кнопкой мыши в области навигации в разделе Запросы и выберите пункт Конструктор.
В ячейке Условие отбора необходимого вам поля добавьте звездочку с одной или обеих сторон условия. Например:
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
Эквивалент одного символа внутри шаблона
Откройте запрос в конструкторе.
В ячейке Условие отбора необходимого вам поля введите перед условием отбора оператор Like.
Замените один или несколько символов в условии подстановочным знаком. Например, запрос Like R?308021 возвращает результаты RA308021, RB308021 и т. д.
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
Получение списка компаний от А до Н
Откройте запрос в конструкторе.
В ячейке Условие отбора необходимого вам поля введите оператор Like, а затем пару двойных кавычек. Например: Like «».
В двойных кавычках введите пару квадратных скобок и диапазон символов, которые вы хотите найти, например:
За скобками можно использовать подстановочные знаки. Например:
Таблица подстановочных знаков
В этой таблице перечислены и описаны подстановочные знаки, которые можно использовать в запросе Access.
Соответствует нулю или более символам. Может использоваться в качестве первого или последнего символа в строке символов.
По запросу «чт*» будут найдены слова «чт», «что», «чтение» и «чтиво»
Соответствует любому одиночному символу алфавита.
По запросу «ст?л» будут найдены слова «стол», «стал» и «стул»
Соответствует любому одиночному символу, указанному в квадратных скобках.
По запросу «ст[оу]л» будут найдены слова «стол», «стул», но не «стал»
Соответствует любому символу, не указанному в квадратных скобках.
По запросу «ст[!оу]л» будут найдены слова «стал» и «стыл», но не «стол» или «стул»
Соответствует любому символу из диапазона. Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А).
По запросу «с[а-ы]н» будут найдены слова «сан», «сон» и «сын»
Соответствует любому цифровому символу.
По запросу «1#3» будут найдены числа 103, 113 и 123.
Примеры использования подстановочных знаков
В данных одни пользователи обозначены словом «владелец», а другие — словами «владелец/оператор».
Like «владелец*» или
Like «*владелец*»
Необходимо использовать подстановочные знаки в запросе с параметрами.
Этот запрос возвращает все рецепты, содержащие слово «рыба», например «свежая рыба», «красная рыба» и т. д.
При вводе данных кто-то допустил ошибку, например вместо «Элина» написал «Элиза».
Необходимо найти клиентов, фамилии которых начинаются с букв в диапазоне от А до Н (например, для массовой рассылки).
Необходимо найти инвентарные номера, у которых все цифры, кроме второй и третьей, одинаковые.
Необходимо отправить приглашения на уличную вечеринку жителям городского квартала по улице Парковой, в котором номера домов начинаются с 1000.
Like «ул. Парковая, 1###»
Синтаксис для извлечения подстановочных знаков из данных
Открывающая и закрывающая квадратные скобки вместе ([])
Открывающая квадратная скобка ([)
Закрывающая квадратная скобка (])
Специальная обработка не требуется
Специальная обработка не требуется
Выбор набора подстановочных знаков
СУБД Access (ANSI-89) и SQL Server (ANSI-92)
Стандарт ANSI-89 описывает традиционный синтаксис Access SQL, который по умолчанию используется в базах данных Access. Подстановочные знаки соответствует спецификации Microsoft Visual Basic® для приложений (VBA), а не SQL.
Стандарт ANSI-92 используется в тех случаях, когда необходимо обеспечить совместимость синтаксиса с базой данных Microsoft SQL Server™.
Рекомендуется не смешивать два типа подстановочных знаков в одной базе данных.
Подстановочные знаки для СУБД Access (ANSI-89)
Эти подстановочные знаки следует использовать в запросах, созданных для базы данных Access.
Соответствует любому количеству символов. Может использоваться в качестве первого или последнего символа в строке символов.
По запросу «чт*» будут найдены слова «что», «чтение» и «чтиво»
Соответствует любому одиночному символу алфавита.
По запросу «ст?л» будут найдены слова «стол», «стал» и «стул»
Соответствует любому одиночному символу, указанному в квадратных скобках.
По запросу «ст[оу]л» будут найдены слова «стол», «стул», но не «стал».
Соответствует любому символу, не указанному в квадратных скобках.
По запросу «ст[!оу]л» будут найдены слова «стал» и «стыл», но не «стол» или «стул»
Соответствует любому символу из диапазона. Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А).
По запросу «с[а-ы]н» будут найдены слова «сан», «сон» и «сын»
Соответствует любому цифровому символу.
По запросу «1#3» будут найдены числа 103, 113 и 123.
Подстановочные знаки для SQL Server (ANSI-92)
Эти подстановочные знаки следует использовать в запросах, созданных для базы данных Microsoft SQL Server™.
Соответствует любому количеству символов. Может использоваться в качестве первого или последнего символа в строке символов.
По запросу «чт*» будут найдены слова «что», «чтение» и «чтиво»
Соответствует любому одиночному символу алфавита.
По запросу «ст?л» будут найдены слова «стол», «стал» и «стул»
Соответствует любому одиночному символу, указанному в квадратных скобках.
По запросу «ст[оу]л» будут найдены слова «стол», «стул», но не «стал».
Соответствует любому символу, не указанному в квадратных скобках.
По запросу «ст[!оу]л» будут найдены слова «стал» и «стыл», но не «стол» или «стул»
Соответствует любому символу из диапазона. Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А).
По запросу «с[а-ы]н» будут найдены слова «сан», «сон» и «сын»
Примеры подстановочных знаков
Если вы хотите найти определенный элемент, но не помните его точное написание, используйте в строке запроса подстановочные знаки.
Подстановочные знаки — это специальные символы, которые могут заменять неизвестные символы в текстовом значении и удобны для поиска нескольких элементов с похожими, но не одинаковыми данными. Кроме того, они могут пригодиться для получения данных, соответствующих указанному шаблону. Например, поиск всех людей с именем Андрей, проживающих на улице Тюльпановой.
Дополнительные сведения о запросах см. в статье Знакомство с запросами.
Вот несколько примеров подстановочных знаков для создания запросов в приложении Access.
Соответствует любому количеству символов. Вы можете использовать звездочку ( *) в любом месте строки символов.
По запросу чт* будут найдены слова «что», «чтение» и «чтиво», но не «почтение» или «почта».
Соответствует отдельной букве в определенной позиции.
По запросу ст?л будут найдены слова «стол», «стал» и «стул».
Соответствует символам в скобках.
По запросу ст[оу]л будут найдены слова «стол», «стул», но не «стал».
Исключает символы в скобках.
По запросу ст[!оу]л будут найдены слова «стал» и «стыл», но не «стол» или «стул».
По запросу Like «[!a]*» будут найдены все элементы, которые не начинаются с буквы «a».
Соответствует диапазону символов. Помните, что символы следует указывать в алфавитном порядке (от А до Я, а не от Я до А).
По запросу с[а-ы]н будут найдены слова «сан», «сон» и «сын».
Соответствует любому цифровому символу.
По запросу 1#3 будут найдены числа 103, 113 и 123.
Примеры использования подстановочных знаков для поиска соответствий шаблону
Подстановочные знаки используются в шаблоне следующим образом.
Откройте запрос в конструкторе.
В строке Условие отбора необходимого вам поля введите перед условием отбора оператор Like.
Замените один или несколько символов в условии подстановочным знаком. Например, запрос Like R?308021 возвращает результаты RA308021, RB308021 и т. д.
На вкладке Конструктор нажмите кнопку Выполнить.
Рассмотрим несколько примеров шаблонов с подстановочными знаками, которые вы можете использовать в выражениях.
? или _ (подчеркивание)
Ноль или больше символов
Любой символ, входящий в список_символов
Любой символ, не входящий в список_символов
Любой буквенно-цифровой символ
Любая прописная буква от А до Я.
Примечание: Диапазон символов необходимо указывать в алфавитном порядке. Например, [Я-А] — это неправильный шаблон.
Чтобы найти соответствия таким специальным символам, как вопросительный знак (?), знак решетки (#) и звездочка (*), заключите их в круглые скобки.
Функция CHARLIST возвращает совпадения для одного или более символов и позволяет использовать практически любые символы из набор знаков ANSI, включая цифры. Функция CHARLIST заключается в квадратные скобки ([ ]) и может использоваться совместно с подстановочными знаками для более точного поиска соответствий.
Чтобы определить диапазон символов, используйте в функции CHARLIST дефис (-) для разделения верхней и нижней границ диапазона.
Чтобы найти соответствие символу дефиса (-), разместите его в начале или в конце функции CHARLIST (после восклицательного знака, если он используется). В любом другом месте дефис указывает на диапазон символов ANSI.