Vrátí hodnotu typu Variant (Long) určující pozici prvního výskytu jednoho řetězce v jiném řetězci.
Syntaxe
InStr ([start, ] string1, string2 [, compare ] )
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 je tento znak vynechán, bude hledání zahájeno na pozici prvního znaku. Pokud start obsahuje hodnotu Null, dojde k chybě. Argument začátek je povinný v případě, že je zadaný argument porovnání. |
Řetězec1 |
Povinný argument. Hledaný řetězcový výraz |
Řetězec2 |
Povinný argument. Hledaní řetězcový výraz |
porovnání |
Nepovinný argument. Určuje typ Porovnání řetězců. Pokud je hodnota porovnání Null, dojde k chybě. Pokud porovnání vysíláte, určuje typ porovnání nastavení Option Compare. Zadejte platný identifikátor LCID (LocaleID), aby se v porovnání používají pravidla specifická pro národní prostředí. |
Tip: V Accessu 2010 obsahuje Tvůrce výrazů technologii IntelliSense, takže vidíte, jaké argumenty výraz vyžaduje.
Nastavení
Nastavení argumentů porovnání:
Konstanta | Hodnota | Popis |
---|---|---|
vbUseCompareOption |
-1 |
Provede porovnání pomocí nastavení příkazu Option Compare. |
vbBinaryCompare |
0 |
Provede binární porovnání. |
vbTextCompare |
1 |
Provede textové porovnání. |
vbDatabaseCompare |
2 |
Microsoft Office Access 2007 jenom na to. Provede porovnání na základě informací v databázi. |
Vrácené hodnoty
Pokud | Funkce InStr vrátí |
---|---|
Řetězec1 je nulová délka |
0 |
Řetězec1 je Null. |
Null |
Řetězec2 je nulová délka |
začátek |
Řetězec2 je Null. |
Null |
Řetězec2 nebyl nalezen. |
0 |
Řetězec2 je nalezen v řetězci1. |
Umístění nalezené shody |
start > string2 |
0 |
Poznámky
Funkce InStrB se používá s údaji o byte obsaženém 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 typu byte.
Příklady
Použití funkce InStr ve výrazu Můžete použít InStr všude, kde můžete používat výrazy. Pokud například chcete najít pozici prvního období (.) v poli, které obsahuje IP adresy (pojmenované IPAddress), můžete ho najít pomocí funkce InStr, třeba takhle:
InStr(1,[IPAddress],".")
Funkce InStr prověří každou hodnotu v poli IPAddress a vrátí pozici prvního období. Pokud je tedy první část IP adresy 10., vrátí funkce hodnotu 3.
Potom můžete použít jiné funkce, které fungují na výstupu funkce InStr, k extrakci části IP adresy, která předchází prvnímu období, třeba takhle:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
V tomto příkladu InStr(1,[IPAddress],".") vrátí pozici prvního období. Odečtení 1 určuje, kolik znaků předchází prvnímu období, v tomto případě 2. Funkce Left potom extrahuje z levé části pole IPAddress počet znaků 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). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.
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.