Renvoie une donnée de type Variante (Long) spécifiant la position de la première occurrence d’une chaîne dans une autre chaîne.
Syntaxe
InStr ([début, ] chaîne1, chaîne2 [, comparaison ] )
La syntaxe de la fonction DansStr compte les arguments suivantes :
Argument |
Description |
début |
Facultatif. Expression numérique qui définit la position de départ de chaque recherche. Si elle est omise, la recherche commence à la position du premier caractère. Si début contient Null, une erreur se produit. L’argument début est obligatoire si comparaison est spécifié. |
chaîne1 |
Obligatoire. Expression de chaîne dans le cas d’une recherche. |
chaîne2 |
Obligatoire. Expression de chaîne recherchée. |
comparaison |
Facultatif. Indique le type de comparaison de chaînes. Si comparaison a la valeur Null, une erreur se produit. Si l’option comparaison est omis, le paramètre Comparer les options détermine le type de comparaison. Spécifiez un LCID (LocaleID) valide pour utiliser des règles locales dans la comparaison. |
Conseil : Dans Access 2010, le Générateur d’expressions IntelliSense pour vous aider à voir les arguments dont votre expression a besoin.
Paramètres
Les paramètres de comparaison des arguments sont les les autres :
Constante |
Valeur |
Description |
vbUseCompareOption |
-1 |
Effectue une comparaison en utilisant le paramètre de l’instruction Comparaison des options. |
vbBinaryCompare |
0 |
Effectue une comparaison binaire. |
vbTextCompare |
1 |
Effectue une comparaison textuelle. |
vbDatabaseCompare |
2 |
Microsoft Office Access 2007 uniquement. Effectue une comparaison sur la base d’informations de votre base de données. |
Renvoyer des valeurs
Si |
InStr renvoie |
chaîne1 est nulle |
0 |
chaîne1 est Null |
Null |
chaîne2 est de longueur nulle |
début |
chaîne2 est Null |
Null |
chaîne2 in trouvée |
0 |
chaîne2 se trouve dans la chaîne1 |
Position à laquelle la correspondance est trouvée |
démarrer > chaîne2 |
0 |
Remarques
La fonction InStrB est utilisée avec les données d’byte contenues dans une chaîne. Au lieu de renvoyer la position du caractère de la première occurrence d’une chaîne dans une autre chaîne, InStrB renvoie la position du nombre d’byte.
Exemples
Utiliser la fonction DansStr dans une expression Vous pouvez utiliser InStr là où vous pouvez utiliser des expressions. Par exemple, si vous voulez trouver la position de la première période (.) dans un champ qui contient des adresses IP (nommées IPAddress), vous pouvez utiliser InStr pour le trouver, comme c’est le cas :
InStr(1,[IPAddress], ». »)
La fonction InStr examine chaque valeur du champ IPAddress et renvoie la position de la première période. Par conséquent, si la première partie de l’adresse IP est de 10., la fonction renvoie la valeur 3.
Vous pouvez ensuite utiliser d’autres fonctions, fonctionnant sur la sortie de la fonction DansStr, pour extraire la partie de l’adresse IP qui précède la première période, comme cela :
Left([IPAddress],(InStr(1,[IPAddress], ». ») -1))
Dans cet exemple, InStr(1,[IPAddress], ». ») renvoie la position de la première période. La soustraction de 1 détermine le nombre de caractères précédant la première période, en l’occurrence, 2. La fonction Gauche extrait ensuite ce nombre de caractères dans la partie gauche du champ IPAddress et retourne la valeur 10.
Utiliser InStr dans du code VBA
Remarque : Les exemples qui suivent illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’travail avec VBA, sélectionnez Référence du développeur dans la liste verte en regard de Rechercher, puis entrez un ou plusieurs termes dans la zone de recherche.
Cet exemple utilise la fonction DansStr pour renvoyer la position de la première occurrence d’une chaîne dans une autre.
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.