Dernière position d'un caractère dans une Chaîne

Exclusion de responsabilité du contenu obsolète de la base de connaissances

Cet article a été rédigé sur les produits pour lesquels Microsoft n’offre plus aucune prise en charge. Par conséquent, cet article est proposé « en l’état » et ne sera plus mis à jour.

Résumé


Dans certains cas d'extraction rapide d'une partie d'une chaîne de
caractères CHAINE1 dans une autre chaîne de caractères CHAINE2, il est
utile de connaître la dernière position d'un caractère ( ou d'un groupe de
caractères) dans CHAINE2


Plus d'informations


1- Dans un module, créez la fonction suivante

Function PosDer(Chain As String, Carac As String) As Long

'cherche la dernières position de caractères dans une chaîne
On Error GoTo ges
Dim Pos As Integer
Pos = InStr(1, Chain, Carac)
While Pos <= Len(Chain) And Pos <> 0
PosDer = Pos
Pos = InStr(Pos + 1, Chain, Carac)
Wend

fin:
Exit Function

ges:
MsgBox Error
Exit Function

End Function


2- Puis dans la fenêtre d'exécution ( ou dans une Requête, _ ) lancez
cette procédure en lui passant en paramètre la chaine de caractères
recherchée et la chaîne de caractères dans laquelle vous recherchez.

Exemple :

Dans la fenêtre d'exécution :

?PosDer("abcd", "d")donne PosDer égale à : 4
?PosDer("abcd dd", "dd")donne PosDer égale à : 6
?PosDer("d", "d")donne PosDer égale à : 1


REMARQUE :

Lorsque vous utilisez cette fonction dans un module ( procédure ou
fonction visual basic ) il est possible de rechercher des espaces.

exemple :
?PosDer("abcd ", " ")donne PosDer égale à : 5

Par contre, lorsque vous l'utilisez dans une Requête, la recherche
d'espaces renvoie un #ERREUR car dans les requêtes le caractère ESPACE
n'est pas considéré comme un caractère à part entière.

exemple :
Expr1 :PosDer("abcd " ; " ")donne PosDer égal à : #ERREUR.
Propriétés

ID d'article : 467076 - Dernière mise à jour : 1 mars 2004 - Révision : 1

Commentaires