Contanténer des valeurs texte à l'aide d'une expression.
Lorsque vous voulez concaténer les valeurs de deux ou plusieurs champs de texte, vous créez une expression qui utilise l'esperluette (&). Par exemple, supposons que vous avez un formulaire qui est appelé employés. Vous avez affiché les prénom et nom de chaque employé dans des champs séparés, mais vous souhaitez afficher le nom complet du salarié dans un contrôle texte du formulaire.
Pour afficher le nom complet, vous utilisez cette expression:
Me!FirstAndLast = Me!FirstName & " " & Me!LastName
Pour afficher le nom complet, vous utilisez cette expression:
Me!FirstAndLast = Me!FirstName & " " & Me!LastName
L'expression utilise l'opérateur esperluette et concatène les valeurs des champs FirstName et LastName dans le contrôle FirstAndLast. Elle utilise également l'expression d'une paire de guillemets séparés par un espace pour insérer un espace entre le prénom et le nom.
Comme autre exemple, vous pouvez utiliser l'expression suivante pour afficher le nom et le prénom, séparés par une virgule et un espace:
Me!FirstAndLast = Me!FirstName & ", " & Me!LastName
Dans ce cas, l'expression insère une virgule et un espace entre le prénom et le nom.
Parfois, l'un des champs que vous voulez concaténer contient une valeur nulle. Lorsque vous utilisez l'opérateur & sur un champ Nom qui n’est pas renseigné le résultat attendu en concaténation ne va pas être satisfaisant.
Exemple : FirstName = ‘Raymond’
LastName = ‘Sénèque’
FirstAndLast sera égal à ‘Raymond, Sénèque’
Si FirstName = ‘Raymond’
LastName = Null
FirstAndLast sera égal à ‘Raymond, ‘
Si FirstName = Null
LastName = ‘Sénèque’
FirstAndLast sera égal à ‘, Sénèque’
Lorsque vous concaténez les valeurs de plusieurs champs dans une nouvelle chaîne, vous ne voulez peut-être inclure une virgule (ou autre caractères) dans la nouvelle chaîne de caractères que lorsqu'il existe des données dans le champ suivant ou précédent.
Pour inclure une valeur conditionnelle vous devez utiliser le signe + au lieu de l'esperluette.
Si nous reprenons le cas ci-dessus, nous voulons obtenir les valeurs suivantes :
‘Raymond, Sénèque’ ou ‘Raymond’ ou ‘, Sénèque’
selon que les champs seront renseignés ou non.
selon que les champs seront renseignés ou non.
Pour obtenir ce résultat nous allons procéder à la modification de l’expression. Au lieu de
Me!FirstAndLast = Me!FirstName & ", " & Me!LastName
Nous indiquerons:
Me!FirstAndLast = Me!FirstName & (", " + Me!LastName)
L'opérateur + concatène le texte de la même façon que l'opérateur &. Toutefois, l'opérateur + prend également en charge ce que l'on appelle la propagation Null. La propagation Null garantit que si l'un des composants d'une expression est Null, le résultat de l'ensemble de l'expression est également Null.
Dans l'exemple ci-dessus, l’expression qui est évaluée est : (", " + Me!LastName).
Parce que l’opérateur utilisé est le signe + la valeur retournée par cette expression sera une virgule suivie d’une espace suivi de LastName si LastName contient une valeur. Si LastName est Null, la valeur retournée sera Null et donc sans la virgule ni l’espace.
Et nous obtiendrons le résultat escompté.
Vous pourriez également faire l’expression suivante :
Me!FirstAndLast = (Me!FirstName + ", ") & Me!LastName
Qui tiendrait compte de la valeur Null de FirstName et non de la valeur Null de LastName.
Si votre instruction ne contient qu’une seule expression conditionnelle, les parenthèses ne sont pas obligatoires mais si vous indiquez plusieurs expressions conditionnelles, celles-ci sont obligatoires pour toutes les expressions conditionnelles. Prenez l’habitude d’indiquer les expressions conditionnelles entre parenthèses quel que soit le nombre d’expressions.