В этом разделе содержатся справочные сведения и ограниченные инструкции по использованию подстановочных знаков, предоставляемых Access.
Сведения о поиске подстановочных знаков в базах данных Access см. в статьях Использование диалогового окна "Поиск и замена" для изменения данных, Создание простого запроса на выборку и Обновление данных в базе данных.
В этой статье
- Поддерживаемые наборы символов
- Определение стандарта ANSI, поддерживаемого базой данных
- Подстановочные знаки ANSI-89
- Подстановочные знаки ANSI-92
- Типы данных, для которых можно выполнять поиск с помощью подстановочных знаков
Поддерживаемые наборы символов
Access поддерживает два набора подстановочных знаков, так как поддерживает два стандарта для языка SQL — ANSI-89 и ANSI-92. Как правило, при выполнении запросов и операций по поиску и замене для баз данных Access (MDB- и ACCDB-файлов) используются подстановочные знаки ANSI-89. Подстановочные знаки ANSI-92 применяются при выполнении запросов для проектов Access — файлов Access, подключенных к базам данных Microsoft SQL Server. Поскольку в SQL Server используется стандарт ANSI-92, он же применяется и в проектах Access.
Однако из этого правила существует исключение. В следующей таблице перечислены методы и средства, которыми можно воспользоваться для поиска и замены данных, а также указан стандарт ANSI, используемый по умолчанию с каждым из средств.
| Метод или средство поиска | Тип файла, в котором выполняется поиск | Используемый набор знаков |
|---|---|---|
| Диалоговое окно Поиск и замена | База данных Access (MDB- и ACCDB-файлы) | ANSI-89 |
| Диалоговое окно Поиск и замена | Проект Access (ADP- и ACCDP-файлы) | ANSI-92 |
| Запрос на выборку или обновление | База данных Access (MDB- и ACCDB-файлы) | ANSI-89 |
| Запрос на выборку или обновление | Проект Access (ADP- и ACCDP-файлы) | ANSI-92 |
| Диалоговое окно Поиск и замена, запрос на выборку или обновление | База данных Access, для которой включена поддержка стандарта ANSI-92 | ANSI-92 |
Определение стандарта ANSI, поддерживаемого базой данных
Чтобы определить и при необходимости изменить стандарт ANSI для базы данных, выполните следующие действия:
Щелкните Параметры файла>.
Откроется диалоговое окно Параметры Access.Выберите пункт Конструкторы объектов и в разделе Конструктор запросов в группе Синтаксис для SQL Server (ANSI 92) выполните одно из следующих действий:
- Установите флажок Эта база данных, чтобы изменить стандарт открытой базы данных на стандарт ANSI-92.
-или-
Снимите флажок, чтобы задать для открытой базы данных стандарт ANSI-89. - Установите флажок По умолчанию для новых баз данных, чтобы задать для всех новых баз данных, созданных в открытом экземпляре Access, стандарт ANSI-92.
-или-
Снимите флажок, чтобы задать для всех новых баз данных стандарт ANSI-89.
- Установите флажок Эта база данных, чтобы изменить стандарт открытой базы данных на стандарт ANSI-92.
Нажмите кнопку ОК.
Подстановочные знаки ANSI-89
Используйте этот набор подстановочных знаков в диалоговом окне Поиск и замена, если требуется найти или заменить данные в базе данных или проекте Access. Эти знаки также используются при выполнении запросов на выборку и обновление для базы данных Access, однако их нельзя применять в запросах для проектов Access. Дополнительные сведения об использовании запросов на выборку и обновление см. в статьях Создание простого запроса на выборку и Обновление данных в базе данных.
| Символ | Описание | Пример |
|---|---|---|
| * | Соответствует любому количеству символов. Вы можете использовать звездочку (*) в любом месте строки символов. | По запросу чт* будут найдены слова "что", "чтение" и "чтиво", но не "почтение" или "почта". |
| ? | Соответствует любому одиночному знаку алфавита. | По запросу ст?л будут найдены слова "стол", "стал" и "стул". |
| [ ] | Соответствует любому одиночному символу, указанному в квадратных скобках. | По запросу ст[оу]л будут найдены слова "стол", "стул", но не "стал". |
| ! | Соответствует любому символу, не указанному в квадратных скобках. | По запросу ст[!оу]л будут найдены слова "стал" и "стыл", но не "стол" или "стул". |
| - | Соответствует любому символу из диапазона. Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А). | По запросу с[а-ы]н будут найдены слова "сан", "сон" и "сын". |
| # | Соответствует любому цифровому символу. | По запросу 1#3 будут найдены числа 103, 113 и 123. |
Подстановочные знаки ANSI-92
Данный набор подстановочных знаков используется при выполнении запросов на выборку и обновление для проектов Access (ADP-файлов) и для поиска в базе данных стандарта ANSI-92 с помощью запроса любого типа или с помощью диалогового окна Поиск и замена.
| Символ | Описание | Пример |
|---|---|---|
| % | Соответствует любому количеству символов. Может использоваться в качестве первого или последнего символа в строке символов. | По запросу чт% будут найдены слова "что", "чтение" и "чтиво", но не "почтение" или "почта". |
| _ | Соответствует любому одиночному символу алфавита. | По запросу ст_л будут найдены слова "стол", "стал" и "стул". |
| [ ] | Соответствует любому одиночному символу, указанному в квадратных скобках. | По запросу ст[оу]л будут найдены слова "стол", "стул", но не "стал". |
| ^ | Соответствует любому символу, не указанному в квадратных скобках. | По запросу ст[^оу]л будут найдены слова "стал" и "стыл", но не "стол" или "стул". |
| - | Соответствует любому символу из диапазона. Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А). | По запросу с[а-ы]н будут найдены слова "сан", "сон" и "сын". |
Примечания
- Чтобы найти подстановочные знаки, которые находятся в данных, заключите символ, который нужно найти в квадратных скобках, например [#]. Следуйте этому правилу при поиске звездочек (*), вопросительных знаков (?), знаков фунта (#), открывающих скобки ([) и дефисов (-). Не используйте квадратные скобки при поиске восклицательных точек (!) или закрывающих скобок (]). Чтобы найти эти знаки с помощью диалогового окна Поиск и замена, введите знак в поле Образец, не используя квадратные скобки. По такому же принципу выполняется поиск знаков с помощью запроса. Например, следующий синтаксис возвращает все записи, содержащие восклицательный знак, независимо от позиции знака в данных: Like "*!*".
Сведения об использовании диалогового окна Поиск и замена см. в статье Использование диалогового окна "Поиск и замена" для изменения данных. Сведения об использовании запросов на выборку и обновление см. в статьях Создание простого запроса на выборку и Обновление данных в базе данных.
При поиске дефиса вместе с другими знаками следует разместить его до или после всех других знаков в скобках, например: [-#*] или [#*-]. Однако если у вас есть восклицательный знак (!) после открывающей скобки, поместите дефис после восклицательного знака: [!-]. - Чтобы найти пару открывающих и закрывающих скобок ([]), необходимо заключить оба символа в скобки, например [[]]. Это необходимо сделать, так как Access интерпретирует одну пару скобок как строку нулевой длины.
Типы данных, для которых можно выполнять поиск с помощью подстановочных знаков
При создании таблицы для каждого ее поля задается тип данных. Например, полям, содержащим даты, присваивается тип данных "Дата/время". В следующей таблице перечислены типы данных, для которых можно выполнять поиск с помощью подстановочных знаков. Следует помнить, что в некоторых случаях подстановочные знаки можно использовать только в диалоговом окне Поиск и замена, но не в запросах, и наоборот.
| Тип данных | Где используются подстановочные знаки |
|---|---|
| Текстовый | Диалоговое окно Поиск и замена, запросы |
| Memo | Диалоговое окно Поиск и замена, запросы |
| Числовой | Диалоговое окно Поиск и замена, запросы |
| Дата/время | Диалоговое окно Поиск и замена, запросы Примечание: Региональные параметры могут влиять на то, как вы используете подстановочные знаки. Дополнительные сведения см. в примечаниях в конце раздела. |
| Денежный | Диалоговое окно Поиск и замена, запросы |
| Счетчик | Диалоговое окно Поиск и замена, запросы |
| Объект OLE | Нет. |
| Логический | Запросы, но в них нет необходимости. Дополнительные сведения см. в примечаниях в конце раздела. |
| Гиперссылка | Диалоговое окно Поиск и замена, запросы |
| Мастер подстановок | Зависит от типа данных исходного поля. |
Примечания
- В диалоговом окне Поиск и замена можно использовать подстановочные знаки для поиска в полях даты и времени, если их формат полностью или частично отображает дату в виде текста. Например, вы можете выполнить поиск с помощью строки, например *ar*-10-2007**, и результаты будут включать в себя любой месяц, содержащий буквы "ar" — январь, февраль и т. д. Помните, что поскольку необходимо выполнить поиск, используя формат, примененный к данным, необходимо установить в диалоговом окне флажок С учетом формата полей. Дополнительные сведения см. в статье Использование диалогового окна "Поиск и замена" для изменения данных.
- Настройки даты и времени, определенные в региональных параметрах Windows, могут повлиять на отображение данных и на способ поиска. Например, даты могут отображаться римскими цифрами (07-IX-1997, а не 07-сен-1997). Как правило, поиск выполняется на основе того, что выводится на экран, а не того, что хранится в таблице Access. Другими словами, для поиска всех записей, относящихся к сентябрю 2007 года, можно использовать строку *-IX-2007.
Кроме того, если текст в поле даты содержит диакритические знаки, такие как á или ä, необходимо включить их в строку поиска, иначе запись не удастся найти. Вместо диакритических знаков можно использовать подстановочные знаки. Например, если отображается дата , например 3-heinä-2007, можно выполнить поиск по строке , например *-hein*-2007. - При поиске в поле логического типа с использованием диалогового окна Поиск и замена приложение Access пропускает это поле, а диалоговое окно не возвращает никаких записей. При поиске в поле логического типа с помощью запроса можно использовать подстановочные знаки, но следует помнить, что логические поля возвращают только два значения (0 — "Ложь" и -1 — "Истина"), поэтому подстановочные знаки никак не влияют на поиск. Например, условие =-1 возвращает те же результаты, что и "Like *1".
- Поиск в полях типа "Объект OLE" не поддерживается.