Microsoft Office Online
Přihlášení k webu Moje služba Office Online (Co je to?) | Přihlásit

 
 
Microsoft Office Access
Hledat
Hledat
 
Vyzkoušení nebo nákup
Získání systému Office 2007
Aktualizace: (c) Microsoft
Stahování pro sadu Office
 
 
 
Upozornění: Tuto stránku zobrazujete v nepodporované verzi webového prohlížeče. Tento web pracuje nejlépe v aplikaci Microsoft Internet Explorer 6.0 či novější, v aplikaci Firefox 1.5 nebo v aplikaci Netscape Navigator 8.0 či novější. Další informace o podporovaných prohlížečích

Funkce InStr
 

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

Zde naleznete několik příkladů

Syntaxe

InStr([začátek, ] řetězec1, řetězec2 [, porovnání ] )

Syntaxe funkce InStr zahrnuje následující argumenty (Argument: Hodnota, která poskytuje informace určité akci, události, metodě, vlastnosti, funkci nebo proceduře.):

Argument Popis
začátek Nepovinný argument. Číselný výraz (Číselný výraz: Libovolný výraz, jehož výsledkem je číslo. Výraz může být libovolnou kombinací proměnných, konstant, funkcí a operátorů.), který nastaví počáteční pozici pro každé vyhledávání. Pokud je tento argument vynechán, bude vyhledávání zahájeno v pozici prvního znaku. Jestliže argument začátek obsahuje hodnotu Null (Hodnota Null: Hodnota, kterou můžete zadat do pole nebo ji použit ve výrazech a dotazech a označit tak chybějící nebo neznámá data. V jazyce Visual Basic označuje klíčové slovo Null hodnotu Null. Některá pole, například pole primárního klíče, nemohou obsahovat hodnoty Null.), dojde k chybě. Je-li zadán argument porovnání, je nutné zadat i argument začátek.
řetězec1 Povinný argument. Prohledávaný řetězcový výraz (Řetězcový výraz: Výraz, který je vyhodnocen jako posloupnost sousedících znaků. Prvky výrazu mohou zahrnovat: funkce vracející řetězec nebo řetězec typu Variant (VarType 8), řetězcový literál, konstantu, proměnnou nebo řetězec typu Variant</.).
řetězec2 Povinný argument. Hledaný řetězcový výraz.
porovnání Nepovinný argument. Určuje typ porovnání řetězců (Porovnání řetězců: Použití určitého operátoru za účelem zjištění, zda je jeden řetězec delší nebo stejně dlouhý jako druhý. Pomocí příkazu Option Compare (Porovnání s možnostmi) lze zadat binární porovnání (s rozlišováním malých a velkých písmen) nebo porovnání textové (bez rozlišování malých a velkých písmen).). Jestliže má argument porovnání hodnotu Null, dojde k chybě. Pokud je argument porovnání vynechán, je typ porovnání určen nastavením příkazu Option Compare. Chcete-li při porovnání použít pravidla specifická pro národní prostředí, zadejte platný identifikátor národního prostředí (LCID).

Nastavení

Nastavení argumentu porovnání:

Konstanta Hodnota Popis
vbUseCompareOption -1 Provádí porovnání používající nastavení příkazu Option Compare.
vbBinaryCompare 0 Provádí binární porovnání.
vbTextCompare 1 Provádí textové porovnání.
vbDatabaseCompare 2 Pouze v aplikaci Aplikace Microsoft Office Access 2007. Provádí porovnání na základě informací v databázi.

Návratové hodnoty

Podmínka Hodnota vrácená funkcí InStr
řetězec1 je nulové délky 0
řetězec1 má hodnotu Null Null
řetězec2 je nulové délky začátek
řetězec2 má hodnotu Null Null
řetězec2 nelze najít 0
řetězec2 je v řetězci řetězec1 obsažen Pozice nalezení shody
začátek > řetězec2 0

Poznámky

V případě dat typu Byte obsažených v řetězci se používá funkce InStrB. Funkce InStrB nevrací pozici znaku prvního výskytu jednoho řetězce v jiném, ale pozici daného bajtu.

Příklady

Použití funkce inStr ve výrazu  Funkci InStr lze použít vždy, když lze použít výrazy. Chcete-li například zjistit umístění první tečky (.) v poli s adresou IP (s názvem AdresaIP, můžete k tomu následujícím způsobem použít funkci InStr:

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

Funkce InStr postupně projde všechny hodnoty v poli AdresaIP a vrátí pozici první tečky. Pokud je tedy první část adresy IP 10., vrátí funkce hodnotu 3.

Pomocí dalších funkcí zpracovávajících výstup funkce InStr pak můžete následovně získat část adresy IP před první tečkou:

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

V uvedeném příkladu vrátí příkaz InStr(1,[AdresaIP],".") pozici první tečky. Odečtení 1 označuje, kolik znaků je před první tečkou. V našem případě jsou to dva znaky. Funkce Left pak extrahuje zadaný počet znaků z levé části pole AdresaIP a vrátí hodnotu 10.

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

 Poznámka:   Následující příklady uvádějí použití této funkce v modulu jazyka Visual Basic for Applications (VBA). Další informace o práci s jazykem VBA získáte tak, že klepnete na položku Referenční informace pro vývojáře v rozevíracím seznamu vedle pole Hledat a do pole pro hledání zadáte jeden nebo více pojmů.

V tomto příkladu je pomocí funkce InStr vrácena pozice prvního výskytu jednoho řetězce v jiném.

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.

		
inzerát