Função InStr

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Retorna uma Variante (Longo) que especifica a posição da primeira ocorrência de uma cadeia em outra.

Confira alguns exemplos

Sintaxe

InStr([start, ] string1, string2 [, compare ] )

A sintaxe da função InStr tem esses argumentos:

Argumento Descrição
início Opcional. Expressão numérica que define a posição inicial para cada pesquisa. Se omitido, a pesquisa começará na posição do primeiro caractere. Se o início contiver Null, ocorrerá um erro. O argumento inícioserá necessário se comparar for especificado.
cadeia1 Obrigatório. Expressão de cadeia de caracteres que está sendo pesquisada.
cadeia2 Obrigatório. Expressão de cadeia de caracteres procurada.
comparar Opcional. Especifica o tipo de comparação de cadeia de caracteres. Se comparar for Nulo, ocorrerá um erro. Se a comparação for omitida, a configuração OptionCompare determinará o tipo de comparação. Especifique um LCID válido (LocaleID) para usar regras específicas da localidade na comparação.

Dica

O Construtor de Expressões tem IntelliSense, para que você possa ver quais argumentos sua expressão exige.

Configurações

As configurações de argumento de comparação são:

Constante Valor Descrição
vbUseCompareOption -1 Executa uma comparação usando a configuração da instrução Option Compare .
vbBinaryCompare 0 Executa uma comparação binária.
vbTextCompare 1 Executa uma comparação textual.

Valores retornados

If InStr retorna
string1 é de comprimento zero 0
string1 é Null Nulo
string2 é de comprimento zero Começar
string2 é Null Nulo
string2 não é encontrado 0
string2 é encontrado dentro da cadeia de caracteres1 Posição na qual a correspondência é encontrada
iniciar cadeia > de caracteres2 0

Comentários

A função InStrB é usada com dados de bytes contidos em uma cadeia de caracteres. Em vez de retornar a posição do caractere da primeira ocorrência de uma cadeia de caracteres dentro de outra, o InStrB retorna a posição de byte.

Exemplos

Usar a função InStr em uma expressão Você pode usar o InStr onde puder usar expressões. Por exemplo, se você quiser encontrar a posição do primeiro período (.) em um campo que contém endereços IP (chamados IPAddress), você pode usar o InStr para encontrá-lo, assim:

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

A função InStr examina cada valor no campo IPAddress e retorna a posição do primeiro período. Portanto, se a primeira parte do endereço IP for 10., a função retornará o valor 3.

Em seguida, você pode usar outras funções, operando na saída da função InStr , para extrair a parte do endereço IP que precede o primeiro período, assim:

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

Neste exemplo, InStr(1,[IPAddress],".") retorna a posição do primeiro período. A subtração 1 determina quantos caracteres precedem o primeiro período, nesse caso, 2. A função Esquerda então extrai muitos caracteres da parte esquerda do campo IPAddress, retornando o valor 10.

Usar o InStr no código VBA 

Observação

Exemplos a seguir demonstram o uso dessa função em um módulo VBA (Visual Basic for Applications).

Este exemplo usa a função InStr para retornar a posição da primeira ocorrência de uma cadeia de caracteres dentro de outra.


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.

Veja Também

As funções de cadeia de caracteres e como usá-las