Funkce InStr

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vrátí hodnotu typu Variant (Long) určující pozici prvního výskytu jednoho řetězce v jiném řetězci.

Tady je několik příkladů

Syntaxe

InStr([start; ] řetězec_1, řetězec_2 [, porovnání ] )

Syntaxe funkce InStr obsahuje tyto argumenty:

Argument Popis
začátek Nepovinný argument. Číselný výraz, který nastaví počáteční pozici pro každé hledání. Pokud tento argument vynecháte, začne hledání na první pozici znaku. Pokud argument start obsahuje hodnotu Null, dojde k chybě. Argument start je povinný, pokud je zadaný parametr porovnání.
řetězec_1 Povinný argument. Hledaný řetězcový výraz.
řetězec_2 Povinný argument. Hledaný řetězcový výraz.
porovnat Nepovinný argument. Určuje typ porovnání řetězců. Pokud má porovnání hodnotu Null, dojde k chybě. Pokud argument porovnání vynecháte, určí typ porovnání nastavení OptionCompare . Chcete-li při porovnávání použít pravidla specifická pro národní prostředí, zadejte platný identifikátor LCID (LocaleID).

Tip:

Tvůrce výrazů využívá technologii IntelliSense, takže vidíte, jaké argumenty výraz vyžaduje.

Nastavení

Nastavení porovnávacího argumentu jsou:

Konstanta Hodnota Popis
vbUseCompareOption -1 Provede porovnání pomocí nastavení příkazu Option Compare .
vbBinaryCompare 0 Provede binární porovnání.
vbTextCompare 1 Provede porovnání textu.

Vrácené hodnoty

Pokud Funkce InStr vrátí
řetězec_1 je nulové délky 0
řetězec_1 je Null Null
řetězec_2 je nulové délky spustit
řetězec_2 je Null Null
řetězec_2 nebyl nalezen 0
řetězec_2 se nachází uvnitř řetězce_1 Pozice, na které je nalezena shoda
počáteční > řetězec_2 0

Poznámky

Funkce InStrB se používá s údaji o bajtech obsaženými v řetězci. Místo vrácení pozice znaku prvního výskytu jednoho řetězce v jiném řetězci vrátí funkce InStrB pozici bajtu.

Příklady

Použití funkce InStr ve výrazuInStr můžete použít všude, kde můžete použít výrazy. Pokud například chcete najít pozici první tečky (.) v poli, které obsahuje IP adresy (pojmenované IPAddress), můžete ji najít pomocí funkce InStr , takto:

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

Funkce InStr zkontroluje jednotlivé hodnoty v poli IPAddress a vrátí pozici prvního období. Pokud je tedy první část IP adresy 10., funkce vrátí hodnotu 3.

Pak můžete použít další funkce, které pracují s výstupem funkce InStr , k extrahování části IP adresy, která předchází prvnímu období, například:

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

V tomto příkladu InStr(1,[IPAddress],".") Vrátí pozici prvního období. Odečtením 1 se určí, kolik znaků předchází první tečce, v tomto případě 2. Funkce Left pak extrahuje tento počet znaků z levé části pole Adresa_IP a vrátí hodnotu 10.

Použití funkce InStr v kódu jazyka VBA 

Poznámka

Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications).

V tomto příkladu se funkce InStr používá k vrácení pozice prvního výskytu jednoho řetězce v jiném řetězci.


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.

Viz také

Řetězcové funkce a jejich použití