Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Returns a Variant (Long) specifying the position of the first occurrence of one string within another.

See some examples

Syntax

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

The InStr function syntax has these arguments:

Argument

Description

start

Optional. Numeric expression that sets the starting position for each search. If omitted, search begins at the first character position. If start contains Null, an error occurs. The start argument is required if compare is specified.

string1

Required. String expression being searched.

string2

Required. String expression sought.

compare

Optional. Specifies the type of string comparison. If compare is Null, an error occurs. If compare is omitted, the OptionCompare setting determines the type of comparison. Specify a valid LCID (LocaleID) to use locale-specific rules in the comparison.

Tip: The Expression Builder has IntelliSense, so you can see what arguments your expression requires.

Settings

The compare argument settings are:

Constant

Value

Description

vbUseCompareOption

-1

Performs a comparison using the setting of the Option Compare statement.

vbBinaryCompare

0

Performs a binary comparison.

vbTextCompare

1

Performs a textual comparison.

Return Values

If

InStr returns

string1 is zero-length

0

string1 is Null

Null

string2 is zero-length

start

string2 is Null

Null

string2 is not found

0

string2 is found within string1

Position at which match is found

start > string2

0

Remarks

The InStrB function is used with byte data contained in a string. Instead of returning the character position of the first occurrence of one string within another, InStrB returns the byte position.

Examples

Use the InStr function in an expression    You can use InStr wherever you can use expressions. For example, if you want to find the position of the first period (.) in a field that contains IP addresses (named IPAddress), you can use InStr to find it, like so:

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

The InStr function examines each value in the IPAddress field and returns the position of the first period. Hence, if the first portion of the IP address is 10., the function returns the value 3.

You can then use other functions, operating on the output of the InStr function, to extract the portion of the IP address that precedes the first period, like so:

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

In this example, InStr(1,[IPAddress],".") returns the position of the first period. Subtracting 1 determines how many characters precede the first period, in this case, 2. The Left function then extracts that many characters from the left portion of the IPAddress field, returning the value 10.

Use InStr in VBA code    

Note: Examples that follow demonstrate the use of this function in a Visual Basic for Applications (VBA) module.

This example uses the InStr function to return the position of the first occurrence of one string within another.

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.

See Also

String functions and how to use them

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.