Функция InStr

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Возвращает значение типа Variant (Long), определяющее положение первого вхождения одной строки в другую.

Некоторые примеры

Синтаксис

InStr([start, ] string1, string2 [, compare ] )

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

Аргумент Описание
начало Необязательный аргумент. Числовое выражение, которое задает начальное положение для каждого поиска. Если аргумент не задан, поиск начинается с первого символа. Если аргумент начало содержит значение NULL, возникает ошибка. Если задан аргумент сравнение, аргумент начало является обязательным.
строка1 Обязательный аргумент. Представляет собой строковое выражение, в котором выполняется поиск.
строка2 Обязательный аргумент. Искомое строковое выражение.
сравнение Необязательный аргумент. Указывает тип сравнения строк. Если параметр compare имеет значение Null, возникает ошибка. Если сравнение опущено, параметр OptionCompare определяет тип сравнения. Укажите допустимый LCID (LocaleID) для использования правил, относящихся к языковому стандарту, в сравнении.

Совет

Построитель выражений имеет IntelliSense, поэтому вы можете видеть, какие аргументы требуются для выражения.

Параметры

Аргумент compare может принимать следующие значения.

Константа Значение Описание
vbUseCompareOption –1 Выполняется сравнение с помощью параметра инструкции Option Compare.
vbBinaryCompare 0 Выполняется двоичное сравнение.
vbTextCompare 1 Выполняется текстовое сравнение.

Возвращаемые значения

Если Возвращаемое значение
строка1 является пустой 0
строка1 равна NULL NULL
строка2 является пустой начало
строка2 равна NULL NULL
строка2 не найдена 0
строка2 найдена в строке1 Позиция найденного соответствия
start > string2 0

Замечания

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

Примеры

Использование функции InStr в выраженииInStr можно использовать везде, где можно использовать выражения. Например, если вы хотите найти позицию первой точки (.) в поле, содержащее IP-адреса (с именем IPAddress), можно использовать InStr , чтобы найти ее следующим образом:

InStr(1,[IPAddress],".")

Функция InStr проверяет каждое значение в поле IPAddress и возвращает позицию первой точки. Таким образом, если первая часть IP-адреса — 10,функция возвращает значение 3.

Можно использовать другие функции, использующие результат функции InStr, для извлечения значения октета IP-адреса, который предшествует первой точке, например:

Left([IPAddress],(InStr(1,[IPAddress],".")-1))

В этом примере функция InStr(1,[IPAddress],".") возвращает позицию первой точки. В результате вычитания 1 определяется количество знаков, предшествующих первой точке, в данном случае — 2. Затем функция Left получает эти символы из левой части поля IPAddress, возвращая значение 10.

Использование InStr в коде VBA 

Примечание

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

В данном примере функция InStr используется для получения позиции первого вхождения одной строки в другую.


Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"    ' String to search in.
SearchChar = "P"    ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)    
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar)    ' Returns 9.
MyPos = Instr(1, SearchString, "W")    ' Returns 0.

См. также

Строковые функции и их использование