Функция InStr

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Връща стойност от тип Variant (Long), указваща позицията на първата поява на един низ в друг.

Вижте някои примери

Синтаксис

InStr([начало, ] низ1, низ2 [, сравнение ] )

Синтаксисът на функцията InStr има следните аргументи:

Аргумент Описание
начало Незадължително. Числов израз, който задава началната позиция за всяко търсене. Ако се пропусне, търсенето започва от позицията на първия знак. Ако "старт" съдържа Null, възниква грешка. Аргументът начало е задължителен, ако сте указали сравнение.
низ1 Задължително. Низов израз, който е обект на търсенето.
низ2 Задължително. Търсен израз във формата на низ.
сравнение Незадължително. Задава типа сравнение на низовете. Ако сравнение е Null, възниква грешка. Ако сравняване се пропусне, настройката OptionCompare определя типа на сравнението. Задайте валиден LCID (LocaleID), за да използвате специфични за езиковата променлива правила в сравнението.

Съвет

Конструкторът на изрази съдържа IntelliSense, така че можете да видите какви аргументи изисква вашият израз.

Настройки

Настройките за аргументите за сравняване са:

Константа Стойност Описание
vbUseCompareOption -1 Извършва сравнение, като използва настройката на командата Option Compare .
vbBinaryCompare 0 Извършва двоично сравнение.
vbTextCompare 1 Извършва текстово сравнение.

Върнати стойности

If InStr връща
низ1 е с нулева дължина 0
низ1 е Null Null
низ2 е с нулева дължина "Старт"
низ2 е Null Null
Низ2 не е намерен 0
низ2 се намира в низ1 Позиция, за която е намерено съвпадение
начален > низ2 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 for Applications (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.

Вж. също

Функции за низове и как да ги използвате