Връща стойност от тип Variant (Long), указваща позицията на първата поява на един низ в друг.
Синтаксис
InStr ([Начало, ] низ1, низ2 [, сравнение ] )
Синтаксисът на функцията InStr има следните аргументи:
Аргумент |
Описание |
начало |
Незадължително. Числов израз, който задава началната позиция на всяко търсене. Ако се пропусне, търсенето започва от позицията на първия знак. Ако Start съдържа Null, възниква грешка. Аргументът начало е задължителен, ако сте указали сравнение. |
низ1 |
Задължително. Търсене на низ. |
низ2 |
Задължително. Заявен е текстов израз. |
сравнение |
Незадължително. Указва типа сравнение на низове. Ако сравнение е Null, възниква грешка. Ако сравнението е пропуснато, настройката заСравняване на Опцииопределя типа на сравнение. Задайте валиден LCID (LocaleID), за да използвате специфични правила в сравнението. |
Съвет: В Access 2010, Конструкторът на изрази разполага с IntelliSense, така че можете да видите какви аргументи изисква Вашият израз.
Настройки
Настройката Сравняване на аргументите е:
Константа |
Стойност |
Описание |
vbUseCompareOption |
-1 |
Извършва сравнение, като използва настройката за командата " Сравняване на опция ". |
vbBinaryCompare |
0 |
Извършва двоично сравнение. |
vbTextCompare |
1 |
Извършва текстово сравнение. |
vbDatabaseCompare |
2 |
самоMicrosoft Office Access 2007. Извършва сравнение на базата на информацията във вашата база данни. |
Връщащи се стойности
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). За повече информация относно работата с 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.