Funkcia InStr

Vzťahuje sa na
Access pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vráti hodnotu typu Variant (Long), ktorá určuje pozíciu prvého výskytu jedného reťazca v druhom.

Pozrite si niekoľko príkladov

Syntax

InStr([začiatok; ] reťazec1; reťazec2 [, porovnať ] )

Syntax funkcie InStr má tieto argumenty:

Argument Popis
začiatok Voliteľný argument. Numerický výraz, ktorý nastaví počiatočnú pozíciu pre každé hľadanie. Ak sa vynechá, hľadanie sa začne na pozícii prvého znaku. Ak argument začiatok obsahuje hodnotu Null, vyskytne sa chyba. Argument začiatok je povinný, ak je zadaný argument porovnať.
reťazec1 Povinný argument. Vyhľadávaný reťazcový výraz.
reťazec2 Povinný argument. Hľadaný reťazcový výraz.
porovnať Voliteľný argument. Určuje typ porovnania reťazcov. Ak je porovnávanie null, vyskytne sa chyba. Ak sa vynechá porovnávanie , typ porovnania určuje nastavenie OptionCompare . Zadajte platný identifikátor LCID (LocaleID), ktorý sa má použiť v porovnaní s pravidlami špecifickými pre miestne nastavenie.

Tip

Zostavovač výrazov má technológiu IntelliSense, takže môžete vidieť, aké argumenty váš výraz vyžaduje.

Nastavenia

Nastavenia argumentu compare sú:

Konštanta Hodnota Popis
vbUseCompareOption -1 Vykonáva porovnanie pomocou nastavenia príkazu Option Compare.
vbBinaryCompare 0 Vykonáva porovnanie na základe binárnych údajov.
vbTextCompare 1 Vykonáva textové porovnanie.

Vrátené hodnoty

Ak Funkcia InStr vráti
reťazec1 má nulovú dĺžku 0
reťazec1 má hodnotu Null Null
reťazec2 má nulovú dĺžku začiatok
reťazec2 má hodnotu Null Null
reťazec2 sa nenašiel 0
reťazec2 sa nachádza v reťazci1 Pozícia, v ktorej sa našla zhoda
počiatočný > reťazec2 0

Poznámky:

V prípade bajtových údajov obsiahnutých v reťazci použite funkciu InStrB. Funkcia InStrB namiesto vrátenia pozície znaku prvého výskytu jedného reťazca v druhom vráti bajtovú pozíciu.

Príklady

Použitie funkcie InStr vo výraze InStr môžete použiť všade tam, kde môžete použiť výrazy. Ak napríklad chcete nájsť pozíciu prvej bodky (.) v poli, ktoré obsahuje IP adresy (s názvom IPAdresa), môžete ju nájsť pomocou funkcie InStr , napríklad takto:

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

Funkcia InStr preskúma všetky hodnoty v poli IPadresa a vráti pozíciu prvej bodky. Preto, ak je prvá časť IP adresy 10, funkcia vráti hodnotu 3.

Potom môžete extrahovať časť IP adresy nachádzajúcu sa pred prvou bodkou použitím iných funkcií, ktoré spracujú výstup funkcie InStr, napríklad:

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

V tomto príklade funkcia InStr(1,[IPadresa],".") vráti pozíciu prvej bodky. Odčítanie hodnoty 1 určuje, koľko znakov sa nachádza pred prvou bodkou, čiže v tomto prípade to budú 2 znaky. Funkcia Left potom extrahuje tento počet znakov z ľavej časti hodnoty v poli IPAdresa a vráti hodnotu 10.

Použitie reťazca InStr v kóde VBA 

Poznámka

Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA).

V tomto príklade je funkcia InStr použitá na vrátenie pozície prvého výskytu jedného reťazca v druhom.


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.

Pozrite tiež

Funkcie na prácu s reťazcami a spôsob ich používania