Разное

Vba like access: Оператор Like (Microsoft Access SQL)

Содержание

Оператор Like (Microsoft Access SQL)



  • Чтение занимает 2 мин

В этой статье

Область применения: Access 2013 | Access 2016Applies to: Access 2013 | Access 2016

Сравнивает строковое выражение с шаблоном в выражении SQL.Compares a string expression to a pattern in an SQL expression.

СинтаксисSyntax

выражение , например «pattern«expression Like «pattern«

Синтаксис оператора Like состоит из следующих частей:The Like operator syntax has these parts:

ЧастьPartОписаниеDescription
выражениеexpressionВыражение SQL, используемое в предложении WHERE.SQL expression used in a WHERE clause.
patternpatternСтрока или символьная строковый литерал, относительно которого сравнивается выражение .String or character string literal against which expression is compared.

ПримечанияRemarks

Оператор Like можно использовать для поиска значений в поле, которое отвечает заданному шаблону.You can use the Like operator to find values in a field that match the pattern you specify. Для _шаблона_можно указать полное значение (например, Like "Smith") или использовать подстановочные знаки для поиска диапазона значений (например,) или можно использовать подстановочные знаки для поиска диапазона значений (например,. Like "Sm*")For pattern, you can specify the complete value (for example, Like "Smith"), or you can use wildcard characters to find a range of values (for example, ), or you can use wildcard characters to find a range of values (for example, Like "Sm*").

В выражении можно использовать оператор Like для сравнения значения поля с строковым выражением.In an expression, you can use the Like operator to compare a field value to a string expression. Например, если ввести Like "C*" запрос SQL, запрос возвращает все значения полей, начинающиеся с буквы «C». В запросе с параметрами можно запросить у пользователя шаблон для поиска.For example, if you enter Like "C*" in an SQL query, the query returns all field values beginning with the letter C. In a parameter query, you can prompt the user for a pattern to search for.

В следующем примере возвращаются данные, начинающиеся с буквы P, за которыми следует любая буква между A и F и тремя цифрами:The following example returns data that begins with the letter P followed by any letter between A and F and three digits:

Like "P[A-F]###"

В следующей таблице показано, как можно использовать для тестирования выражений для различных шаблонов.The following table shows how you can use Like to test expressions for different patterns.

Вид сравненияKind of matchPatternPatternПОИСКПОЗ (Возвращает значение true)Match (returns True)Нет совпадения (Возвращает значение false)No match (returns False)
Несколько символовMultiple charactersa * aa*aAA, код банка ABA, Абббаaa, aBa, aBBBaaBCaBC
поисковabABC, ААББ, Ксабabc, AABB, XabАЗБ, БПЗaZb, bac
Специальный символSpecial charactera [*] aa[*]aa * aa*aAAAaaa
Несколько символовMultiple charactersпоисковab*абкдефг, ABCabcdefg, abcCAB-файл, ААБcab, aab
Одиночный символSingle charactera? aa?aAAA, A3A, код банка ABAaaa, a3a, aBaабббаaBBBa
Одна цифраSingle digita # aa#aa0a, a1a, a2aa0a, a1a, a2aAAA, a10aaaa, a10a
Диапазон символовRange of characters[a – z][a-z]f, p, jf, p, j2 &2, &
За пределами диапазонаOutside a range[! a – z]9, &,%9, &, %б, ab, a
Не цифраNot a digit[! 0-9]A, a, &, ~A, a, &, ~0, 1, 90, 1, 9
СмешанCombineda [! b – m] #a[!b-m]#An9, az0, a99An9, az0, a99ABC, aj0abc, aj0

ПримерExample

В этом примере возвращается список сотрудников, имена которых начинаются с букв A до D. Он вызывает процедуру EnumFields, которую можно найти в примере инструкции SELECT.This example returns a list of employees whose names begin with the letters A through D. It calls the EnumFields procedure, which you can find in the SELECT statement example.

Sub LikeX() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
 
    ' Return a list of employees whose names begin with 
    ' the letters A through D. 
    Set rst = dbs.OpenRecordset("SELECT LastName," _ 
        & " FirstName FROM Employees" _ 
        & " WHERE LastName Like '[A-D]*';") 
 
    ' Populate the Recordset. 
    rst.MoveLast 
 
    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 15 
    
    dbs.Close 
 
End Sub

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.



Оператор Like — Visual Basic



  • Чтение занимает 4 мин

В этой статье

Сравнивает строку с шаблоном.Compares a string against a pattern.

Важно!

В Like настоящее время оператор не поддерживается в проектах .NET Core и .NET Standard.The Like operator is currently not supported in .NET Core and .NET Standard projects.

СинтаксисSyntax

result = string Like pattern  

КомпонентыParts

result
Обязательный элемент.Required. Любая Boolean переменная.Any Boolean variable. Результатом является Boolean значение, указывающее, удовлетворяет ли объект string pattern .The result is a Boolean value indicating whether or not the string satisfies the pattern.

string
Обязательный.Required. Произвольное выражение String .Any String expression.

pattern
Обязательный.Required. Любое String выражение, удовлетворяющее соглашениям о соответствии шаблону, описанным в разделе «Примечания».Any String expression conforming to the pattern-matching conventions described in «Remarks.»

RemarksRemarks

Если значение в параметре string соответствует шаблону, содержащемуся в pattern , result то является True .If the value in string satisfies the pattern contained in pattern, result is True. Если строка не соответствует шаблону, result то параметр имеет значение False .If the string does not satisfy the pattern, result is False. Если string и, и pattern являются пустыми строками, результатом будет True .If both string and pattern are empty strings, the result is True.

Метод сравненияComparison Method

Поведение Like оператора зависит от оператора Option Compare.The behavior of the Like operator depends on the Option Compare Statement. По умолчанию для каждого исходного файла используется метод сравнения строк Option Compare Binary .The default string comparison method for each source file is Option Compare Binary.

Параметры шаблонаPattern Options

Встроенное сопоставление шаблонов предоставляет универсальное средство для сравнения строк.Built-in pattern matching provides a versatile tool for string comparisons. Функции сопоставления шаблонов позволяют сопоставлять каждый символ с string конкретным символом, подстановочным знаком, списком символов или диапазоном символов.The pattern-matching features allow you to match each character in string against a specific character, a wildcard character, a character list, or a character range. В следующей таблице приведены символы, разрешенные в pattern , и их соответствие.The following table shows the characters allowed in pattern and what they match.

Символы в patternCharacters in patternСоответствия в stringMatches in string
?Любой отдельный символAny single character
*Ноль или более символовZero or more characters
#Любая отдельная цифра (0 – 9)Any single digit (0–9)
[charlist]Любой отдельный символ в charlistAny single character in charlist
[!charlist]Любой отдельный символ, не являющийся charlistAny single character not in charlist

Списки символовCharacter Lists

Группа из одного или нескольких символов ( charlist ), заключенных в квадратные скобки ( [ ] ), может использоваться для сопоставления любого отдельного символа в string и может включать практически любой код символа, включая цифры.A group of one or more characters (charlist) enclosed in brackets ([ ]) can be used to match any single character in string and can include almost any character code, including digits.

Восклицательный знак ( ! ) в начале charlist означает, что сопоставление выполняется, если какой-либо символ, кроме символов в charlist , находится в string .An exclamation point (!) at the beginning of charlist means that a match is made if any character except the characters in charlist is found in string. При использовании вне квадратных скобок восклицательный знак соответствует самому себе.When used outside brackets, the exclamation point matches itself.

Специальные символыSpecial Characters

Чтобы сопоставить специальные символы с левой скобкой ( [ ), вопросительный знак ( ? ), знак решетки ( # ) и звездочка ( * ), заключите их в квадратные скобки.To match the special characters left bracket ([), question mark (?), number sign (#), and asterisk (*), enclose them in brackets. Правая квадратная скобка ( ] ) не может использоваться в группе для сопоставления самой себе, но ее можно использовать за пределами группы в качестве отдельного символа.The right bracket (]) cannot be used within a group to match itself, but it can be used outside a group as an individual character.

Последовательность символов [] считается строкой нулевой длины ( "" ).The character sequence [] is considered a zero-length string (""). Однако она не может входить в список символов, заключенный в квадратные скобки.However, it cannot be part of a character list enclosed in brackets. Если вы хотите проверить, является ли элемент в какой string -либо из групп символов или вообще не содержать ни одного символа, можно использовать Like дважды.If you want to check whether a position in string contains one of a group of characters or no character at all, you can use Like twice. Пример см. в разделе как сопоставить строку с шаблоном.For an example, see How to: Match a String against a Pattern.

Диапазоны символовCharacter Ranges

Используя дефис ( ) для разделения нижней и верхней границ диапазона, charlist можно указать диапазон символов.By using a hyphen () to separate the lower and upper bounds of the range, charlist can specify a range of characters. Например, [A–Z] результатом является совпадение, если соответствующая символьная позиции в string содержит любой символ в диапазоне AZ , и [!H–L] результатом является совпадение, если соответствующая символьная позиции содержит любой символ за пределами диапазона HL .For example, [A–Z] results in a match if the corresponding character position in string contains any character within the range AZ, and [!H–L] results in a match if the corresponding character position contains any character outside the range HL.

При указании диапазона символов они должны отображаться в порядке сортировки по возрастанию, то есть от самого низкого до самого высокого.When you specify a range of characters, they must appear in ascending sort order, that is, from lowest to highest. Таким образом, [A–Z] является допустимым шаблоном, но [Z–A] не является.Thus, [A–Z] is a valid pattern, but [Z–A] is not.

Несколько диапазонов символовMultiple Character Ranges

Чтобы указать несколько диапазонов для одной позиции символа, поместите их в одни и те же квадратные скобки без разделителей.To specify multiple ranges for the same character position, put them within the same brackets without delimiters. Например, [A–CX–Z] результатом является совпадение, если соответствующая символьная позиции в string содержит любой символ либо в диапазоне A , C либо в диапазоне XZ .For example, [A–CX–Z] results in a match if the corresponding character position in string contains any character within either the range AC or the range XZ.

Использование дефисаUsage of the Hyphen

Дефис ( ) может располагаться в начале (после восклицательного знака, если есть) или в конце, charlist чтобы соответствовать самому себе.A hyphen () can appear either at the beginning (after an exclamation point, if any) or at the end of charlist to match itself. В любом другом расположении дефис определяет диапазон символов, разделенных символами с любой стороны дефиса.In any other location, the hyphen identifies a range of characters delimited by the characters on either side of the hyphen.

Порядок сортировкиCollating Sequence

Значение указанного диапазона зависит от порядка символов во время выполнения, определенного Option Compare параметром, и параметра языкового стандарта системы, в которой выполняется код.The meaning of a specified range depends on the character ordering at run time, as determined by Option Compare and the locale setting of the system the code is running on. В параметр Option Compare Binary Range соответствует значениям [A–E] A , B ,, C D и E .With Option Compare Binary, the range [A–E] matches A, B, C, D, and E. С Option Compare Text , [A–E] соответствует A , a ,,, À à B , b , C , c , D , d , E и e .With Option Compare Text, [A–E] matches A, a, À, à, B, b, C, c, D, d, E, and e. Диапазон не совпадает Ê , или, ê так как диакритические знаки сортируются после символов без диакритических знаков в порядке сортировки.The range does not match Ê or ê because accented characters collate after unaccented characters in the sort order.

Символы раскруткиDigraph Characters

В некоторых языках есть алфавитные символы, представляющие два отдельных символа.In some languages, there are alphabetic characters that represent two separate characters. Например, несколько языков используют символ æ для представления символов a и, e когда они появляются вместе.For example, several languages use the character æ to represent the characters a and e when they appear together. LikeОператор распознает, что один и тот же символ раскрутки и два отдельных символа эквивалентны.The Like operator recognizes that the single digraph character and the two individual characters are equivalent.

Если в настройках языкового стандарта системы задан язык, использующий символ относительных значений, то вхождение одного символа относительных значений в pattern или string соответствует последовательности двух символов в другой строке.When a language that uses a digraph character is specified in the system locale settings, an occurrence of the single digraph character in either pattern or string matches the equivalent two-character sequence in the other string. Аналогично, символ отсчета в pattern квадратных скобках (сам по себе, в списке или в диапазоне) совпадает с эквивалентной последовательностью двух символов в string .Similarly, a digraph character in pattern enclosed in brackets (by itself, in a list, or in a range) matches the equivalent two-character sequence in string.

ПерегрузкаOverloading

LikeОператор можно перегрузить, что означает, что класс или структура может переопределить свое поведение, когда операнд имеет тип этого класса или структуры.The Like operator can be overloaded, which means that a class or structure can redefine its behavior when an operand has the type of that class or structure. Если код использует этот оператор для такого класса или структуры, убедитесь, что вы понимаете его переопределенное поведение.If your code uses this operator on such a class or structure, be sure you understand its redefined behavior. Для получения дополнительной информации см. Operator Procedures.For more information, see Operator Procedures.

ПримерExample

В этом примере Like оператор используется для сравнения строк с различными шаблонами.This example uses the Like operator to compare strings to various patterns. Результаты попадают в Boolean переменную, указывающую, соответствует ли каждая строка шаблону.The results go into a Boolean variable indicating whether each string satisfies the pattern.

Dim testCheck As Boolean
' The following statement returns True (does "F" satisfy "F"?)
testCheck = "F" Like "F"
' The following statement returns False for Option Compare Binary
'    and True for Option Compare Text (does "F" satisfy "f"?)
testCheck = "F" Like "f"
' The following statement returns False (does "F" satisfy "FFF"?)
testCheck = "F" Like "FFF"
' The following statement returns True (does "aBBBa" have an "a" at the
'    beginning, an "a" at the end, and any number of characters in 
'    between?)
testCheck = "aBBBa" Like "a*a"
' The following statement returns True (does "F" occur in the set of
'    characters from "A" through "Z"?)
testCheck = "F" Like "[A-Z]"
' The following statement returns False (does "F" NOT occur in the 
'    set of characters from "A" through "Z"?)
testCheck = "F" Like "[!A-Z]"
' The following statement returns True (does "a2a" begin and end with
'    an "a" and have any single-digit number in between?)
testCheck = "a2a" Like "a#a"
' The following statement returns True (does "aM5b" begin with an "a",
'    followed by any character from the set "L" through "P", followed
'    by any single-digit number, and end with any character NOT in
'    the character set "c" through "e"?)
testCheck = "aM5b" Like "a[L-P]#[!c-e]"
' The following statement returns True (does "BAT123khg" begin with a
'    "B", followed by any single character, followed by a "T", and end
'    with zero or more characters of any type?)
testCheck = "BAT123khg" Like "B?T*"
' The following statement returns False (does "CAT123khg"?) begin with
'    a "B", followed by any single character, followed by a "T", and
'    end with zero or more characters of any type?)
testCheck = "CAT123khg" Like "B?T*"

См. такжеSee also

Оператор Like — Access

Сравнивает строковое выражение с шаблоном в выражении SQL.

Синтаксис


выражение
Like «шаблон«

Синтаксис оператора Like включает в себя следующие компоненты:




Часть


Описание


выражение

Выражение SQL, используемое в предложении WHERE.


шаблон

Строка или строковый литерал, с которыми сравнивается выражение.

Замечания

Оператор Like можно использовать для поиска значений полей, соответствующих указанному шаблону. В качестве шаблона можно задать полное значение (например, Like “Smith”) или использовать подстановочные знаки, чтобы получить диапазон значений (например, Like “Sm*”)).

В выражениях оператор Like может использоваться для сравнения значения поля со строковым выражением. Например, если в запросе SQL указать Like “C*”, запрос вернет все значения полей, начинающиеся на букву C. В запросе с параметрами можно предложить пользователю ввести шаблон для поиска.

Следующий пример возвращает данные, которые начинаются с буквы P, за которой идут любая буква от A до F и три цифры:


Like “P[A-F]###”

В следующей таблице показано, как использовать оператор Like для проверки на соответствие различным шаблонам:














Тип совпадения




Шаблон


Соответствие


(возвращает значение «Истина»)


Нет соответствия


(возвращает значение «Истина»)

Несколько символов

а*а

аа, aБa, aБББa

aБВ

*aб*

aбв, AAББ, Цaб

aШб, бaв

Особые символы

а[*]а

а*а

ааа

Несколько символов

aб*

aбвгдеё, aбв

вaб, aaб

Один символ

а?а

ааа, а3а, aБa

aБББa

Одна цифра

а#а

а0а, а1а, а2а

ааа, а10а

Диапазон символов

[a-я]

д, о, и

2, &

Вне диапазона

[!a-я]

9, &, %

б, a

Не цифра

[!0-9]

А, а, &, ~

0, 1, 9

Смешанный

a[!б-л]#

Aм9, aя0, a99

aбв, aи0

Использование критерия Like для поиска данных


Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Оператор (или условие) Like используется в запросе для поиска данных, соответствующих определенному шаблону. Например, в базе данных есть таблица «Клиенты», подобная приведенной ниже, и необходимо выбрать только клиентов из городов, названия которых начинаются на букву «Б». Вот как создается запрос с использованием условия Like:

  1. Откройте таблицу «Клиенты»:

  2. На вкладке Создание нажмите кнопку Конструктор запросов.

  3. В диалоговом окне Добавление таблицы нажмите кнопку Добавить, и в таблице «Клиенты» появится конструктор запросов.

  4. Закройте диалоговое окно Добавление таблицы.

  5. Дважды щелкните поля Фамилия и Город, чтобы добавить их в сетку шаблона запроса.

  6. В поле Город добавьте критерий «Like Б *» и выберите команду выполнить.

В результатах запроса отображаются клиенты только из тех городов, названия которых начинаются на букву «Б».

Подробнее об использовании критериев читайте в статье Применение критериев к запросу.


К началу страницы

Использование оператора Like в синтаксисе SQL

Если вы предпочитаете это (язык структурированных запросов) синтаксис SQL, здесь элемента как:

  1. Откройте таблицу «Клиенты» и на вкладке Создание нажмите кнопку Конструктор запросов.

  2. На вкладке Главная выберите пункты Вид > Режим SQL и введите запрос со следующим синтаксисом:


SELECT [Last Name], City FROM Customers WHERE City Like “B*”;

  1. Нажмите кнопку Выполнить.

  2. Щелкните вкладку запроса правой кнопкой мыши, последовательно выберите пункты Сохранить и Закрыть.

Подробнее читайте в статье Access SQL: общие сведения, словарь и синтаксис и узнайте больше о том, как редактировать инструкции SQL для получения более точных результатов запросов.


К началу страницы

Примеры шаблонов и результатов критерия Like

Критерий или оператор Like используется при сравнении значения поля и строки выражения. Следующий пример возвращает данные, которые начинаются с буквы «П», за которой идут любая буква от «A» до «Д» и три цифры:


Like “P[A-F]###”


Вот несколько способов использования критерия Like для разных шаблонов.













Тип совпадения



Шаблон

Если в базе данных есть совпадения,
вы увидите

Если в базе данных нет совпадений,
вы увидите

Несколько символов

а*а

аа, aБa, aБББa

aБВ

*aб*

aбв, AAББ, Цaб

aШб, бaв

Особые символы

а[*]а

а*а

Ааа

Несколько символов

aб*

aбвгдеё, aбв

вaб, aaб

Один символ

а?а

ааа, а3а, aБa

aБББa

Одна цифра

а#а

а0а, а1а, а2а

ааа, а10а

Диапазон символов

[a-я]

д, о, и

2, &

Вне диапазона

[!a-я]

9, &, %

б, a

Не цифра

[!0-9]

А, а, &, ~

0, 1, 9

Смешанный

a[!б-л]#

Aм9, aя0, a99

aбв, aи0

Примеры критерия Like с подстановочными знаками

Следующая таблица отображает типы результатов при использовании критерия Like с подстановочные знаки в таблице, которая может содержать данные с определенными совпадающими шаблонами.




Условие

Результат

Like «Д#»

Возвращает элементы из двух символов, в которых первый символ Д, а второй — цифра.

Like «Ё?»

Возвращает элементы из двух символов, в которых первый символ — Ё.

Like «*16»

Возвращает элементы, которые заканчиваются на 16.

Подробнее читайте в статье Примеры подстановочных знаков.


К началу страницы

Оператор Like | Microsoft Docs



  • Чтение занимает 3 мин

В этой статье

Используется для сравнения двух строк.Used to compare two strings.

СинтаксисSyntax

result = строка результата, например шаблонresult = string Like pattern

Синтаксис оператора Like состоит из следующих частей:The Like operator syntax has these parts:

ЧастьPartОписаниеDescription
resultresultОбязательный элемент; любая числовая переменная.Required; any numeric variable.
строкаstringОбязательный элемент; любое строковое выражение.Required; any string expression.
patternpatternОбязательный элемент; любое строковое выражение, соответствующее соглашениям о сопоставлении шаблонов, описанным в разделе «Замечания».Required; any string expression conforming to the pattern-matching conventions described in Remarks.

ПримечанияRemarks

Если аргумент string соответствует аргументу pattern, значением result будет являться True; если не соответствует — значением result будет являться False.If string matches pattern, result is True; if there is no match, result is False. Если строка или шаблон имеет значение NULL, то result имеет значение NULL.If either string or pattern is Null, result is Null.

Поведение оператора Like зависит от оператора Option Compare.The behavior of the Like operator depends on the Option Compare statement. Методом по умолчанию для сравнения строк для каждого модуля является Option Compare Binary.The default string-comparison method for each module is Option Compare Binary.

Метод Option Compare Binary выдает результат сравнения строк на основе порядка сортировки, выводимого из внутреннего двоичного представления знаков.Option Compare Binary results in string comparisons based on a sort order derived from the internal binary representations of the characters. Порядок сортировки определяется кодовой страницей.Sort order is determined by the code page.

В следующем примере показан типичный бинарный порядок сортировки:In the following example, a typical binary sort order is shown:

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Метод Option Compare Text выдает результат сравнения строк на основе порядка сортировки текста без учета регистра букв, определяемого языковым стандартом системы.Option Compare Text results in string comparisons based on a case-insensitive, textual sort order determined by your system’s locale. Сортировка тех же знаков с использованием метода Option Compare Text дает следующий порядок сортировки:When you sort the same characters using Option Compare Text, the following text sort order is produced:

(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)

Встроенное сопоставление шаблона предоставляет универсальное средство для сравнения строк.Built-in pattern matching provides a versatile tool for string comparisons. Возможности сопоставления шаблона позволяют использовать подстановочные знаки, списки знаков или диапазоны знаков в любой комбинации, чтобы сопоставить строки.The pattern-matching features allow you to use wildcard characters, character lists, or character ranges, in any combination, to match strings. В следующей таблице представлены знаки, разрешенные для использования в аргументе pattern, и объясняется, чему они соответствуют:The following table shows the characters allowed in pattern and what they match:

Символы в шаблонеCharacters in patternСоответствия в строкеMatches in string
??Любой отдельный знак.Any single character.
*Ноль или больше знаков.Zero or more characters.
#Любая цифра (0-9).Any single digit (0-9).
[ charlist ][ charlist ]Любой отдельный знак, представленный в charlist.Any single character in charlist.
[ ! charlist ][ !charlist ]Любой отдельный знак, не представленный в charlist.Any single character not in charlist.

Группа из одного или нескольких символов ( charlist ), заключенная в квадратные скобки ([]), может использоваться для поиска любого символа в строке и может содержать практически любой код символа, включая цифры.A group of one or more characters ( charlist ) enclosed in brackets ([ ]) can be used to match any single character in string and can include almost any character code, including digits.

Примечание

Чтобы найти соответствующие специальные символы ([), вопросительный знак (?), решетку (#) и звездочку (*), заключите их в квадратные скобки.To match the special characters left bracket ([), question mark (?), number sign (#), and asterisk (*), enclose them in brackets. Знак правой квадратной скобки (]) не может использоваться в рамках группы для сопоставления самому себе, однако может использоваться за пределами группы как отдельный знак.The right bracket (]) can’t be used within a group to match itself, but it can be used outside a group as an individual character.

Используя дефис (), чтобы отделить верхнюю и нижнюю границы диапазона, charlist может указать диапазон символов.By using a hyphen () to separate the upper and lower bounds of the range, charlist can specify a range of characters. Например, результатом [A-Z] является соответствие, если соответствующая позиция знака в строке содержит все прописные буквы в диапазоне a – Z.For example, [A-Z] results in a match if the corresponding character position in string contains any uppercase letters in the range A-Z. Несколько диапазонов могут включаться в квадратные скобки без использования каких-либо разделителей.Multiple ranges are included within the brackets without delimiters.

Значение указанного диапазона зависит от порядка расположения знаков, допустимого во время выполнения (определяется оператором Option Compare и языковыми настройками системы, в которой выполняется код).The meaning of a specified range depends on the character ordering valid at run time (as determined by Option Compare and the locale setting of the system the code is running on). В примере Option Compare Binary диапазон [A-E] соответствует символам A, B и E. В параметре Compare Text [A-E] соответствует символам a, a, à, à, b, b, e, e и e.Using the Option Compare Binary example, the range [A-E] matches A, B and E. With Option Compare Text, [A-E] matches A, a, À, à, B, b, E, e. Данный диапазон не определяет сопоставление для Ê или ê, поскольку символы с надстрочными знаками располагаются по порядку сортировки после символов без надстрочных знаков.The range does not match Ê or ê because accented characters fall after unaccented characters in the sort order.

Также имеются другие важные правила для сопоставления шаблона:Other important rules for pattern matching include the following:

  • Восклицательный знак (!) в начале charlist означает, что выполняется сопоставление, если любой знак, кроме знаков, указанных в charlist, будет найден в аргументе string.An exclamation point (!) at the beginning of charlist means that a match is made if any character except the characters in charlist is found in string. При использовании вне квадратных скобок восклицательный знак сопоставляется самому себе.When used outside brackets, the exclamation point matches itself.

  • Дефис () может располагаться в начале (после восклицательного знака, если он используется) или в конце charlist соответствующим образом.A hyphen () can appear either at the beginning (after an exclamation point if one is used) or at the end of charlist to match itself. На любой другой позиции дефис используется для указания диапазона знаков.In any other location, the hyphen is used to identify a range of characters.

  • При задании диапазона знаков они должны отображаться по возрастающему порядку сортировки (от наименьшего к наибольшему).When a range of characters is specified, they must appear in ascending sort order (from lowest to highest). [A-Z]является допустимым шаблоном, [Z-A] но не является.[A-Z] is a valid pattern, but [Z-A] is not.

  • Последовательность [] символов считается строкой нулевой длины («»).The character sequence [] is considered a zero-length string («»).

В некоторых языках имеются специальные знаки в алфавите, представляющие два отдельных знака.In some languages, there are special characters in the alphabet that represent two separate characters. Например, в нескольких языках используется знак «æ» для представления знаков «a» и «e», когда они отображаются вместе.For example, several languages use the character «æ» to represent the characters «a» and «e» when they appear together. Оператор Like распознает, что такой отдельный специальный знак и соответствующие два отдельных знака являются эквивалентными.The Like operator recognizes that the single special character and the two individual characters are equivalent.

Когда языки, в которых используются специальные знаки, указываются в языковых настройках системы, отдельный специальный знак в аргументе pattern либо в аргументе string сопоставляется с эквивалентной 2-знаковой последовательностью в другой строке.When a language that uses a special character is specified in the system locale settings, an occurrence of the single special character in either pattern or string matches the equivalent 2-character sequence in the other string. Аналогичным образом отдельный специальный знак в аргументе pattern, заключенный в квадратные скобки (указанный отдельно, в списке или в диапазоне), сопоставляется с эквивалентной 2-знаковой последовательностью в string.Similarly, a single special character in pattern enclosed in brackets (by itself, in a list, or in a range) matches the equivalent 2-character sequence in string.

ПримерExample

В этом примере оператор Like используется для сравнения строки с шаблоном.This example uses the Like operator to compare a string to a pattern.

Dim MyCheck
MyCheck = "aBBBa" Like "a*a"    ' Returns True.
MyCheck = "F" Like "[A-Z]"    ' Returns True.
MyCheck = "F" Like "[!A-Z]"    ' Returns False.
MyCheck = "a2a" Like "a#a"    ' Returns True.
MyCheck = "aM5b" Like "a [L-P]#[!c-e]"    ' Returns True.
MyCheck = "BAT123khg" Like "B?T*"    ' Returns True.
MyCheck = "CAT123khg" Like "B?T*"    ' Returns False.
MyCheck = "ab" Like "a*b"    ' Returns True.
MyCheck = "a*b" Like "a [*]b"    ' Returns False.
MyCheck = "axxxxxb" Like "a [*]b"    ' Returns False.
MyCheck = "a [xyz" Like "a [[]*"    ' Returns True.
MyCheck = "a [xyz" Like "a [*"    ' Throws Error 93 (invalid pattern string).

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.



оператор VBA для сравнения строки с шаблоном. Нечеткий поиск

Кроме сравнения строк с использованием операторов «равно», «больше» и «меньше», в языке Visual Basic for Applications (VBA) доступен оператор Like, который можно использовать только для сравнения строк.  

Сравнение строки с шаблоном

Оператор Like выполняет особый тип операции сравнения строк, определяя совпадает ли строка с заданным образцом (шаблоном). Этот оператор используется также для поиска в текстовой информации слов, фраз и определенных символов, совпадающих с заданным шаблоном. Такой тип поиска часто называют нечетким поиском.

Специальные символы совпадения с образцом для оператора Like

Образец, с которым должна сравниваться строка, задается при помощи различных специальных символов, представленных в таблице ниже.

Использование символов совпадения рассмотрим на примере процедуры, удаляющей всю строку активного рабочего листа, при нахождении в этой строке ячейки с искомым текстом (шаблоном).

Если Shablon=»*Круг 2#*», то на листе будут удалены все строки, в которых найдутся слова «Круг 20», «Круг 25» и так далее.

Если Shablon=»S*e», то на листе будут удалены все строки, в ячейках которых будут найдены слова «Sadie», «Salone», «Sophie», «Steve» и так далее.

Если Shablon=»P???y», то удалены будут строки со словами «Penny», «Persy», «Patty» и так далее.

Две последние спецификации символов совпадения из вышеприведенной таблицы используются для указания отдельных символов, совпадение или несовпадение с которыми нужно при поиске. Ниже приведены выражения, использующие квадратные скобки с символьным списком.

Если Shablon=»bi[dg]», то строки со словами в ячейках «bid» и «big» будут удалены, а со словами «bit» и «bin» останутся нетронутыми.

Если же Shablon=»bi[!dg]», то результат будет обратным.

Квадратные скобки можно также использовать для указания диапазона символов, совпадение или несовпадение с которыми необходимо, например Shablon=»ci[a-f]» или Shablon=»ci[!a-f]». В таких случаях диапазоны необходимо указывать от наименьшего до наибольшего символа. Квадратные скобки, в которых ничего не заключено — VBA игнорирует.

Квадратные скобки используются и в тех случаях, когда необходимо сами специальные символы сделать частью шаблона. Например, для того чтобы найти все строки, заканчивающиеся вопросительным знаком, необходимо задать шаблон следующим образом: Shablon=»*[?]».

Для совпадения со знаком дефиса в строке шаблона, дефис помещается в начало или в конец списка символов внутри квадратных скобок. Дефис, помещенный в любое другое место, задает диапазон символов.

Если Shablon=»*g[-]*», то совпадениями будут считаться выражения «big-headed», «plug-ugly», «tag-along» и так далее.

Результат сравнения строк VBA-оператором Like зависит от инструкции Option Compare. При двоичном сравнении оператор различает буквы верхнего и нижнего регистра, а при текстовом — нет.

Другие материалы по теме:

Функция DLookup — Access

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


Примечание: Эта статья не относится к веб-приложениям Access.

С помощью функции DLookup можно отобразить значение поля, которое не находится в источнике записей для формы или отчета. Например, предположим, что у вас есть форма, основанная на таблице «Сведения о заказах». На ней отображаются поля «КодЗаказа», «КодТовара», «ЦенаЗаЕдиницу», «Количество» и «Скидка». Тем не менее поле «НаименованиеТовара» находится в другой таблице (в таблице «Товары»). Вы можете использовать функцию DLookup в вычисляемом элементе управления, чтобы вывести поле «НаименованиеТовара» на той же форме.


Синтаксис


DLookup(

выражение; подмножество
[; условия] )

Функция DLookup имеет следующие аргументы:




Аргумент

Описание


выражение

Обязательный аргумент. Выражение, определяющее поле, значение которого вы хотите возвращать. Это может быть строковое выражение поля в таблице или запросе либо выражение, которое выполняет вычисление данных в этом поле. В выражение можно включить имя поля в таблице, элемента управления в форме, константы или функции. Выражение может включать в себя встроенную или пользовательскую функцию, но не другую агрегатную функцию по подмножеству или агрегатную функцию SQL.


подмножество

Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры.


условия

Необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, к которому применяется функция DLookup. Например, условия часто эквивалентны предложению WHERE в выражении SQL (без слова WHERE). Если условия опущены, функция DLookup применяет выражение ко всему подмножеству. Любое поле, которое включено в условия, также должно входить в подмножество. В противном случае DLookup возвращает значение NULL.

Замечания

Функция DLookup возвращает значение одного поля с учетом условий. Несмотря на то что условия являются необязательным аргументом, если не указать значение для аргумента условия, функция DLookup возвратит случайное значение из подмножества.

Если ни одна из записей не соответствуют условиям или подмножество не содержит записей, DLookup возвращает значение NULL.

Если условиям соответствует несколько полей, DLookup возвращает первое вхождение. Следует указать условия, гарантирующие уникальность значения поля, возвращаемого функцией DLookup. Возможно, потребуется использовать в условиях первичный ключ, такой как [EmployeeID] в приведенном ниже примере, чтобы гарантировать, что функция DLookup вернет уникальное значение:


Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")


Независимо от того, используется ли функция DLookup в макросе, модуле, выражении запроса или вычисляемом элементе управления, необходимо тщательно задать условия, чтобы обеспечить ее правильное вычисление.

Вы можете использовать функцию DLookup, чтобы указать условия в строке «Условие отбора» запроса, в выражении вычисляемого поля в запросе или в строке «Обновление» в запросе на обновление.

Функцию DLookup можно также использовать в выражении вычисляемого элемента управления в форме или отчете, если поле, которое необходимо, не находится в источнике записей, на котором основаны отчет или форма. Например, предположим, что у вас есть форма «Сведения о заказе», основанная на таблице «Сведения о заказе» с текстовым полем «НаименованиеТовара», которое отображает поле «НаименованиеТовара». Чтобы подставлять значения «НаименованиеТовара» из таблицы «Товары» с учетом значения в текстовом поле, вы можете создать другое текстовое поле и задать в качестве значения его свойства ControlSource следующее выражение:


=DLookup(«[ProductName]», «Products», «[ProductID] =» & Forms![Order Details]!ProductID)


Советы

  • Хотя вы можете использовать функцию DLookup для отображения значений из поля во внешней таблице, может быть эффективнее создать запрос, который содержит нужные поля из обеих таблиц, а затем создать на основе него форму или отчет.

  • Вы также можете использовать мастер подстановок для поиска значений во внешней таблице.


Примечание: Несохраненные изменения записей в подмножестве не учитываются при использовании этой функции. Если вы хотите, чтобы функция DLookup учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку Сохранить запись в разделе Записи на вкладке Данные, переместив фокус на другую запись или используя метод Update.


Пример


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

В следующем примере возвращается имя из поля «НазваниеКомпании» записи, которая соответствует условиям. Подмножеством является таблица «Поставщики». Аргумент условия ограничивает результирующий набор теми записями, в которых код грузоотправителя равен 1.


Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")


В следующем примере, основанном на таблице «Поставщики», элемент управления формы «КодГрузоотправителя» используется для задания условий для функции DLookup. Обратите внимание на то, что ссылка на элемент управления не заключена в кавычки, обозначающие строки. Это гарантирует, что каждый раз при вызове функции DLookup приложение Access будет получать текущее значение элемента управления.


Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)


В следующем примере для получения значения используется переменная intSearch.


Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)


Оператор Like (Microsoft Access SQL)

  • 2 минуты на чтение

В этой статье

Применимо к: Access 2013 | Доступ 2016

Сравнивает строковое выражение с шаблоном в выражении SQL.

Синтаксис

выражение Как « шаблон »

Синтаксис оператора Like состоит из следующих частей:

Деталь Описание
выражение Выражение SQL, используемое в предложении WHERE.
узор Строковый или символьный литерал, с которым сравнивается выражение .

Примечания

Оператор Like можно использовать для поиска значений в поле, соответствующих указанному вами шаблону. Для шаблона вы можете указать полное значение (например, Like «Smith» ), или вы можете использовать символы подстановки, чтобы найти диапазон значений (например,), или вы можете использовать символы подстановки, чтобы найти диапазон значений (например, Like «Sm *») .

В выражении можно использовать оператор Like для сравнения значения поля со строковым выражением. Например, если вы введете Like «C *» в запросе SQL, запрос вернет все значения полей, начинающиеся с буквы C. В параметрическом запросе вы можете запросить у пользователя шаблон для поиска.

В следующем примере возвращаются данные, которые начинаются с буквы P, за которой следует любая буква от A до F и три цифры:

  Как "P [A-F] ###"
  

В следующей таблице показано, как можно использовать Like для проверки выражений для различных шаблонов.

Вид соответствия Узор Соответствие (возвращает True) Нет совпадений (возвращает False)
Несколько символов а * а AA, ABA, ABBBA BC
ab abc, AABB, Xab AZB, BAC
Специальный символ a [*] a а * а AAA
Несколько символов ab * abcdefg, abc кабина, aab
Односимвольный а? AAA, A3A, ABA ABBBa
Однозначное число а # а a0a, a1a, a2a ааа, а10а
Диапазон символов [а-я] ф, п, ж 2 и
Вне диапазона [! A-z] 9, &,% б, а
Не цифра [! 0-9] А, А, &, ~ 0, 1, 9
Комбинированный a [! B-m] # Ан9, аз0, а99 abc, aj0

Пример

В этом примере возвращается список сотрудников, имена которых начинаются с букв от A до D.Он вызывает процедуру EnumFields, которую вы можете найти в примере оператора SELECT.

  Sub LikeX ()
 
    Dim dbs как база данных, сначала как набор записей
 
    'Измените эту строку, чтобы включить путь к Northwind
    ' на твоем компьютере.
    Установите dbs = OpenDatabase ("Northwind.mdb")
 
    'Вернуть список сотрудников, имена которых начинаются с
    'буквы от A до D.
    Установите rst = dbs.OpenRecordset ("SELECT LastName," _
        & "Имя ОТ сотрудников" _
        & "WHERE LastName Like '[A-D] *';")
 
    'Заполните набор записей.rst.MoveLast
 
    'Вызов EnumFields для печати содержимого
    'Набор записей. Передайте объект Recordset и желаемый
    ширина поля.
    EnumFields rst, 15
    
    dbs.Close
 
Конец подписки
  

См. Также

Поддержка и отзывы

Есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.

.

Оператор Like — Visual Basic

  • 5 минут на чтение

В этой статье

Сравнивает строку с шаблоном.

Важно

Оператор Like в настоящее время не поддерживается в проектах .NET Core и .NET Standard.

Синтаксис

  результат = строка Как шаблон
  

Детали

результат
Обязательно.Любая логическая переменная . Результатом является логическое значение , указывающее, удовлетворяет ли строка шаблону .

строка
Обязательно. Любое выражение String .

узор
Обязательно. Любое выражение String , соответствующее соглашениям о сопоставлении с образцом, описанным в «Примечаниях».

Замечания

Если значение в строке удовлетворяет шаблону, содержащемуся в шаблоне , результат будет Истинно .Если строка не соответствует шаблону, результат будет False . Если и строка , и образец являются пустыми строками, результатом будет Истина .

Метод сравнения

Поведение оператора Like зависит от оператора Option Compare. Метод сравнения строк по умолчанию для каждого исходного файла — Option Compare Binary .

Параметры шаблона

Встроенная функция сопоставления с образцом представляет собой универсальный инструмент для сравнения строк.Функции сопоставления с образцом позволяют сопоставить каждый символ в строке с конкретным символом, подстановочным знаком, списком символов или диапазоном символов. В следующей таблице показаны символы, разрешенные в шаблоне , и их соответствие.

Знаков в шаблоне Совпадает в строке
? Любой одиночный символ
* Ноль или более символов
Любая отдельная цифра (0–9)
[список] Любой одиночный символ в списке символов
[! Charlist] Любой одиночный символ, не входящий в список символов

Списки символов

Группа из одного или нескольких символов ( charlist ), заключенная в скобки ( [] ), может использоваться для сопоставления любого отдельного символа в строке и может включать почти любой код символа, включая цифры.

Восклицательный знак (! ) в начале списка символов означает, что соответствие выполняется, если любой символ, кроме символов в списке символов , обнаружен в строке . При использовании вне скобок восклицательный знак соответствует самому себе.

Специальные символы

Чтобы соответствовать специальным символам, левая скобка ( [), вопросительный знак (? ), цифровой знак ( # ) и звездочка ( * ), заключите их в квадратные скобки.Правая скобка (] ) не может использоваться в группе для соответствия самой себе, но ее можно использовать вне группы как отдельный символ.

Последовательность символов [] считается строкой нулевой длины ( "" ). Однако он не может быть частью списка символов, заключенного в скобки. Если вы хотите проверить, содержит ли позиция в строке один из группы символов или вообще нет символа, вы можете использовать Подобно дважды. Пример см. В разделе Как сопоставить строку с шаблоном.

Диапазоны символов

Используя дефис ( - ) для разделения нижней и верхней границ диапазона, charlist может указать диапазон символов. Например, [A – Z] приводит к совпадению, если соответствующая позиция символа в строке содержит любой символ в диапазоне A, Z , а [! H – L] приводит к совпадению если соответствующая позиция символа содержит любой символ вне диапазона H L .

Когда вы указываете диапазон символов, они должны отображаться в порядке возрастания, то есть от самого низкого до самого высокого. Таким образом, [A – Z] является допустимым шаблоном, а [Z – A] — нет.

Несколько диапазонов символов

Чтобы указать несколько диапазонов для одной и той же позиции символа, поместите их в одни и те же квадратные скобки без разделителей. Например, [A – CX – Z] приводит к совпадению, если соответствующая позиция символа в строке содержит любой символ в диапазоне A C или диапазоне X Z .

Использование дефиса

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

Последовательность сортировки

Значение указанного диапазона зависит от порядка символов во время выполнения, как определено в Option Compare , и от региональных настроек системы, в которой выполняется код.С опцией Сравнить двоичный диапазон [A – E] соответствует A , B , C , D и E . С опцией Сравните текст , [A – E] соответствует A , a , À , à , B , b , C , c , D , d , E и e . Диапазон не соответствует Ê или Â , потому что символы с диакритическими знаками сопоставляются после символов без ударения в порядке сортировки.

Символы диграфа

В некоторых языках есть буквенные символы, которые представляют два отдельных символа. Например, в нескольких языках символ æ используется для обозначения символов a и e , когда они появляются вместе. Оператор Like распознает, что одиночный символ орграфа и два отдельных символа эквивалентны.

Когда язык, использующий символ орграфа, указан в настройках языкового стандарта системы, вхождение одиночного символа орграфа в шаблоне или строке соответствует эквивалентной двухсимвольной последовательности в другой строке.Аналогично, символ орграфа в шаблоне , заключенный в квадратные скобки (сам по себе, в списке или в диапазоне), соответствует эквивалентной двухсимвольной последовательности в строке .

Перегрузка

Оператор Like может быть перегружен на , что означает, что класс или структура могут переопределить свое поведение, когда операнд имеет тип этого класса или структуры. Если ваш код использует этот оператор для такого класса или структуры, убедитесь, что вы понимаете его переопределенное поведение.Для получения дополнительной информации см. Процедуры оператора.

Пример

В этом примере используется оператор Like для сравнения строк с различными шаблонами. Результаты передаются в логическую переменную , указывающую, соответствует ли каждая строка шаблону.

  Проверка яркости Проверить как логическое значение
'Следующий оператор возвращает True (удовлетворяет ли «F» «F»?)
testCheck = "F" Нравится "F"
'Следующий оператор возвращает False для Option Compare Binary
'и Истина для текста сравнения опций ("F" удовлетворяет "f"?)
testCheck = "F" Нравится "f"
'Следующий оператор возвращает False (удовлетворяет ли «F» «FFF»?)
testCheck = "F" Нравится "FFF"
'Следующий оператор возвращает True (есть ли у «aBBBa» «a» в
'начало, "а" в конце и любое количество символов в
'между?)
testCheck = "aBBBa" Нравится "a * a"
'Следующий оператор возвращает True (встречается ли "F" в наборе
'символы от "A" до "Z"?)
testCheck = "F" Нравится "[A-Z]"
'Следующий оператор возвращает False (НЕ встречается ли "F" в
'набор символов от "A" до "Z"?)
testCheck = "F" Нравится "[! A-Z]"
'Следующий оператор возвращает True (начинается ли "a2a" и заканчивается ли
'an "a", а между ними есть однозначное число?)
testCheck = "a2a" Нравится "a # a"
'Следующий оператор возвращает True (начинается ли «aM5b» с «a»,
', за которым следует любой символ из набора от "L" до "P", за которым следует
'любым однозначным числом и заканчиваться любым символом НЕ в
'набор символов от "c" до "e"?)
testCheck = "aM5b" Нравится "a [L-P] # [! c-e]"
'Следующий оператор возвращает True (начинается ли "BAT123khg" с
'"B", за которым следует любой одиночный символ, за которым следует "T", и конец
'с нулем или более символов любого типа?)
testCheck = "BAT123khg" Нравится "B? T *"
'Следующий оператор возвращает False ("CAT123khg"?) Начинается с
'a "B", за которым следует любой одиночный символ, за которым следует "T", и
'заканчиваться нулями или более символами любого типа?)
testCheck = "CAT123khg" Нравится "B? T *"
  

См. Также

.

Оператор Like | Документы Microsoft

  • 4 минуты на чтение

В этой статье

Используется для сравнения двух строк.

Синтаксис

результат = строка Как шаблон

Синтаксис оператора Like состоит из следующих частей:

Деталь Описание
результат Обязательно; любая числовая переменная.
строка Обязательно; любое строковое выражение.
узор Обязательно; любое строковое выражение, соответствующее соглашениям о сопоставлении с образцом, описанным в Примечаниях.

Примечания

Если строка совпадает с шаблоном , результат будет Истина ; если совпадений нет, результат Ложь . Если строка или образец имеет значение Null, результат будет равен Null .

Поведение оператора Like зависит от оператора Option Compare . Метод сравнения строк по умолчанию для каждого модуля — Option Compare Binary .

Option Compare Binary приводит к сравнению строк на основе порядка сортировки, полученного из внутренних двоичных представлений символов. Порядок сортировки определяется кодовой страницей.

В следующем примере показан типичный порядок двоичной сортировки:

A

Option Compare Text приводит к сравнению строк на основе текстового порядка сортировки без учета регистра, определяемого локалью вашей системы.Когда вы сортируете одинаковые символы с помощью Option Compare Text , создается следующий порядок сортировки текста:

(A = a) <(À = à) <(B = b) <(E = e) <(Ê = ê) <(Z = z) <(Ø = ø)

Встроенная функция сопоставления с образцом представляет собой универсальный инструмент для сравнения строк. Функции сопоставления с образцом позволяют использовать символы подстановки, списки символов или диапазоны символов в любой комбинации для сопоставления строк. В следующей таблице показаны символы, разрешенные в шаблоне , и их соответствие:

Знаки в шаблоне Совпадает в строке
? Любой одиночный символ.
* Ноль или более символов.
# Любая отдельная цифра (0-9).
[ charlist ] Любой одиночный символ в списке символов .
[! список ] Любой одиночный символ, не входящий в список символов .

Группа из одного или нескольких символов ( charlist ), заключенная в квадратные скобки ( [] ), может использоваться для сопоставления любого отдельного символа в строке и может включать практически любой код символа, включая цифры.

Примечание

Чтобы сопоставить специальные символы, левая скобка ( [), вопросительный знак (? ), цифровой знак ( # ) и звездочка ( * ), заключите их в квадратные скобки. Правая скобка (] ) не может использоваться в группе для соответствия самой себе, но ее можно использовать вне группы как отдельный символ.

Используя дефис ( - ) для разделения верхней и нижней границ диапазона, charlist может указать диапазон символов.Например, [A-Z] приводит к совпадению, если соответствующая позиция символа в строке содержит какие-либо прописные буквы в диапазоне A-Z. Несколько диапазонов указаны в скобках без разделителей.

Значение указанного диапазона зависит от порядка символов, действительного во время выполнения (как определено параметром Option Compare и настройками локали системы, в которой выполняется код). Используя пример Option Compare Binary , диапазон [A-E] соответствует A, B и E.С опцией Сравните текст , [A-E] соответствует A, a, À, à, B, b, E, e. Диапазон не соответствует Ê или ê, поскольку символы с диакритическими знаками идут после символов без ударения в порядке сортировки.

Другие важные правила сопоставления с образцом включают следующее:

  • Восклицательный знак (! ) в начале списка символов означает, что соответствие выполняется, если любой символ, кроме символов в списке символов , найден в строке .При использовании вне скобок восклицательный знак соответствует самому себе.

  • Дефис ( - ) может стоять либо в начале (после восклицательного знака, если он используется), либо в конце charlist , чтобы соответствовать самому себе. В любом другом месте дефис используется для обозначения диапазона символов.

  • Если указан диапазон символов, они должны отображаться в порядке возрастания (от наименьшего к наибольшему). [A-Z] - действительный шаблон, а [Z-A] - нет.

  • Последовательность символов [] считается строкой нулевой длины ("").

В некоторых языках в алфавите есть специальные символы, которые представляют два отдельных символа. Например, в нескольких языках символ «æ» используется для обозначения символов «a» и «e», когда они встречаются вместе. Оператор Like распознает, что один специальный символ и два отдельных символа эквивалентны.

Когда язык, использующий специальный символ, указан в настройках языкового стандарта системы, появление одного специального символа в шаблоне или строке совпадает с эквивалентной последовательностью из 2 символов в другой строке.Точно так же один специальный символ в шаблоне , заключенный в скобки (сам по себе, в списке или в диапазоне), соответствует эквивалентной двухсимвольной последовательности в строке .

Пример

В этом примере используется оператор Like для сравнения строки с шаблоном.

  Dim MyCheck
MyCheck = "aBBBa" Like "a * a" 'Возвращает True.
MyCheck = "F" Like "[A-Z]" 'Возвращает True.
MyCheck = "F" Like "[! A-Z]" 'Возвращает False.
MyCheck = "a2a" Like "a # a" 'Возвращает True.MyCheck = "aM5b" Like "a [L-P] # [! C-e]" 'Возвращает True.
MyCheck = "BAT123khg" Like "B? T *" 'Возвращает True.
MyCheck = "CAT123khg" Like "B? T *" 'Возвращает False.
MyCheck = "ab" Like "a * b" 'Возвращает True.
MyCheck = "a * b" Like "a [*] b" 'Возвращает False.
MyCheck = "axxxxxb" Like "a [*] b" 'Возвращает False.
MyCheck = "a [xyz" Like "a [[] *" 'Возвращает True.
MyCheck = "a [xyz" Like "a [*" 'Выдает ошибку 93 (неверная строка шаблона).
  

См. Также

Поддержка и отзывы

Есть вопросы или отзывы об Office VBA или этой документации? См. Раздел Поддержка и отзывы Office VBA, чтобы узнать, как получить поддержку и оставить отзыв.

.

Доступ к оператору SQL VBA с LIKE & AND

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *