Returns a Variant (Long) specifying the position of the first occurrence of one string within another.
See some examples
InStr([start, ] string1, string2 [, compare ] )
The InStr function syntax has these arguments (argument: A value that provides information to an action, an event, a method, a property, a function, or a procedure.):
||Optional. Numeric expression (numeric expression: Any expression that evaluates to a number. The expression can be any combination of variables, constants, functions, and operators.) that sets the starting position for each search. If omitted, search begins at the first character position. If start contains Null (Null: A value you can enter in a field or use in expressions or queries to indicate missing or unknown data. In Visual Basic, the Null keyword indicates a Null value. Some fields, such as primary key fields, can't contain a Null value.), an error occurs. The start argument is required if compare is specified.
||Required. String expression (string expression: An expression that evaluates to a sequence of contiguous characters. Elements of the expression can be: functions that return a string or a string Variant (VarType 8); a string literal, constant, variable, or Variant.) being searched.
||Required. String expression sought.
||Optional. Specifies the type of string comparison (string comparison: The use of an operator to determine whether one string is greater than or equal to another string. Use the Option Compare statement to specify binary (case sensitive) or text (non-case sensitive) comparison.). If compare is Null, an error occurs. If compare is omitted, the Option Compare setting determines the type of comparison. Specify a valid LCID (LocaleID) to use locale-specific rules in the comparison.
Tip In Access 2010, the Expression Builder has IntelliSense, so you can see what arguments your expression requires.
Watch a video or try Office 2010.
The compare argument settings are:
||Performs a comparison using the setting of the Option Compare statement.
||Performs a binary comparison.
||Performs a textual comparison.
||Microsoft Office Access 2007 only. Performs a comparison based on information in your database.
|string1 is zero-length
|string1 is Null
|string2 is zero-length
|string2 is Null
|string2 is not found
|string2 is found within string1
||Position at which match is found
|start > string2
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.
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:
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:
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. For more information about working with VBA, select Developer Reference in the drop-down list next to Search and enter one or more terms in the search box.
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.