Les fonctions de chaîne vous offrent la possibilité de créer des expressions dans Access qui manipulent le texte de différentes manières. Par exemple, vous pouvez souhaiter n’afficher qu’une partie d’un numéro de série sur un formulaire. Ou vous pouvez devoir joindre (concaténer) plusieurs chaînes les unes aux autres, comme un nom et un prénom par exemple. Si vous n’êtes pas encore très familiarisé avec les expressions, voir Créer une expression.
Voici une liste de certaines des opérations de chaîne les plus courantes dans Access, ainsi que des fonctions que vous utiliseriez pour les exécuter :
Pour… |
Utilisez... |
Par exemple... |
Résultats |
Renvoyer les caractères du début d’une chaîne |
Fonction Lefthttps://msdn.microsoft.com/en-us/library/gg251556.aspx |
=Left([NuméroSérie],2) |
Si [NuméroSérie] est « CD234 », le résultat est « CD ». |
Renvoyer les caractères de la fin d’une chaîne |
Droitehttps://msdn.microsoft.com/en-us/library/gg278801.aspx |
=Right([NuméroSérie],3) |
Si [NuméroSérie] est « CD234 », le résultat est « 234 ». |
Trouver la position d’un caractère dans une chaîne |
=InStr(1,[Prénom],"i") |
Si [Prénom] est « Colin », le résultat est 4. |
|
Renvoyer les caractères du milieu d’une chaîne |
=Mid([NuméroSérie],2,2) |
Si [NuméroSérie] est « CD234 », le résultat est « D2 ». |
|
Éliminer les espaces de début ou de fin d’une chaîne |
=Trim([Prénom]) |
Si [Prénom] est « Colin », le résultat est « Colin ». |
|
Joindre deux chaînes |
Opérateur* Signe plus (+) |
=[Prénom] + [Nom] |
Si [Prénom] est « Colin » et [Nom] est Wilcox, le résultat est « ColinWilcox » |
Joindre deux chaînes en les séparant d’un espace |
Opérateur* Signe plus (+) |
=[Prénom] + " " + [Nom] |
Si [Prénom] est « Colin » et [Nom] est Wilcox, le résultat est « Colin Wilcox » |
Changer la casse d’une chaîne en majuscules ou en minuscules |
=UCase([Prénom]) |
Si [Prénom] est « Colin », le résultat est « COLIN ». |
|
Déterminer la longueur d’une chaîne |
=Len([Prénom]) |
Si [Prénom] est « Colin », le résultat est 5. |
* D’accord, ce n’est pas une fonction, c’est un opérateur. Il s’agit toutefois du moyen le plus rapide de joindre des chaînes. Dans une base de données de bureau, vous pouvez aussi utiliser l’opérateur « et commercial » (&) pour la concaténation. Dans une application Access, vous devez utiliser le signe plus (+).
Il existe bien d’autres fonctions de manipulation du texte dans Access. Pour en savoir plus sur ces fonctions, ouvrez le Générateur d’expressions et faites défiler les listes de fonctions. Le Générateur d’expressions est disponible presque partout où vous voulez créer une expression : on trouve généralement un petit bouton Générer qui ressemble à ceci :
Pour faire la démonstration du Générateur d’expressions, ouvrons-le à partir de la propriété Source contrôle dans un formulaire ou une vue. Utilisez l’une des procédures suivantes selon que vous utilisez une base de données de bureau ou une application web Access.
Afficher le Générateur d’expressions dans une base de données de bureau
-
Ouvrez une base de données de bureau (.accdb).
-
Appuyez sur F11 pour ouvrir le volet de navigation, s’il n’est pas déjà ouvert.
-
Si vous avez déjà un formulaire disponible, cliquez dessus avec le bouton droit dans le volet de navigation, puis cliquez sur Mode Page. Si vous ne disposez pas de formulaire sur lequel travailler, cliquez sur Créer > Formulaire.
-
Cliquez avec le bouton droit sur une zone de texte dans le formulaire, puis cliquez sur Propriétés.
-
Dans la Feuille de propriétés, cliquez sur Toutes > Source contrôle, puis cliquez sur le bouton Générer
à droite de la propriété Source contrôle.
-
Sous Éléments d’expression, développez le nœud Fonctions, puis cliquez sur Fonctions intégrées.
-
Sous Catégories d’expressions, cliquez sur Texte.
-
Sous Valeurs d’expression, cliquez sur les différentes fonctions et lisez les brèves descriptions au bas du Générateur d’expressions.
Remarque : Toutes ces fonctions ne sont pas disponibles dans tous les contextes ; Access filtre automatiquement la liste des fonctions en fonction du contexte.
Afficher le Générateur d’expressions dans une application web Access
-
Ouvrez l’application web dans Access. Si vous la voyez dans le navigateur, cliquez sur Paramètres > Personnaliser dans Access.
-
Cliquez sur une table dans la colonne gauche, puis sur un nom de vue à droite de la liste de tables.
-
Cliquez sur Modifier, sur une zone de texte, puis sur le bouton Données qui apparaît en regard de la zone de texte.
-
Cliquez sur le bouton Générer
à droite de la liste déroulante Source contrôle.
-
Sous Éléments d’expression, développez le nœud Fonctions, puis cliquez sur Fonctions intégrées.
-
Sous Catégories d’expressions, cliquez sur Texte.
-
Sous Valeurs d’expression, cliquez sur les différentes fonctions et lisez les brèves descriptions au bas du Générateur d’expressions.
Combiner les fonctions de texte pour plus de flexibilité
Certaines fonctions de chaîne possèdent des arguments numériques que, dans certains cas, vous devez calculer chaque fois que vous appelez la fonction. Par exemple, la fonction Left utilise une chaîne et un nombre, comme dans l’exemple =Left(NuméroSérie, 2). Parfait si vous savez que vous aurez toujours besoin des deux caractères de gauche, mais inadapté si le nombre de caractères dont vous avez besoin varie à chaque élément. Au lieu de « coder en dur » le nombre de caractères, vous pouvez entrer une autre fonction qui calcule cette valeur.
Voici un exemple de numéros de série qui ont chacun un tiret quelque part dans la chaîne. Toutefois, la position du tiret varie :
NuméroSérie |
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
Si vous voulez uniquement afficher les nombres à gauche du tiret, vous devez effectuer un calcul à chaque fois pour identifier la position du tiret. Vous pouvez procéder comme suit :
=Left([NuméroSérie],InStr(1,[NuméroSérie],"-")-1)
Au lieu d’entrer un nombre comme deuxième argument de la fonction Gauche, nous avons branché la fonction DansStr,qui renvoie la position du tiret dans le numéro de série. Soustrayez 1 de cette valeur est vous obtenez le nombre exact de caractères devant être renvoyés par la fonction Left. Cela peut semble un peu compliqué de prime abord, mais en expérimentant un peu, vous réussirez à combiner deux expressions ou plus pour obtenir les résultats que vous voulez.
Pour plus d’informations sur l’utilisation de fonctions de chaîne, voir Utilisation de fonctions de chaîne dans vos requêtes SQL Access.