Troisième variable

reup80 Messages postés 1 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 1 avril 2006 - 1 avril 2006 à 15:53
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 1 avril 2006 à 16:49
Bonjour à tous,

voilà je recherche comment intégrer dans ce type de script la notion d'une troisième donnée, à savoir je voudrais que si la première 0 et la deuxième 0 alors la troisième retourne la valeur, en gros qu'il y ait toujours une des trois données de retourner (les variables sont du texte).


Code:,
----

If Len(Trim({EVT\BLK\TL\Search Name})) = 0 Then
Result = {EVT\BLK\CY\Search Name}
Else
If Len(Trim({EVT\BLK\CY\Search Name})) = 0 Then
Result = {EVT\BLK\TL\Search Name}
Else
Result = {EVT\BLK\TL\Search Name} + " - " + {EVT\BLK\CY\Search Name}
End If
End If

Un grand merci pour votre aide

3 réponses

mcs2006 Messages postés 58 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 1 mai 2006
1 avril 2006 à 16:42
Bonjour,

Je ne suis pas sûr de comprendre ce que tu veux obtenir.
Est-ce que ce qui suit te convient ?

'par défaut on prend la 1ère donnée, vide ou non
result = Trim(donnee_1)

'on teste si la 2ème donnée n'est pas vide
If Trim(donnee_2) <> "" Then
'on teste si le résultat précédent est vide ou non
If result <> "" Then 'si result pas vide on ajoute le tiret et la donnée
result = result & " - " & Trim(donnee_2)
Else 'si result vide on ajoute seulement la donnée
result = Trim(donnee_2)
End If
End If

'on teste si la 3ème donnée n'est pas vide
If Trim(donnee_3) <> "" Then
If result <> "" Then 'si result pas vide on ajoute le tiret et la donnée
result = result & " - " & Trim(donnee_3)
Else 'si result vide on ajoute seulement la donnée
result = Trim(donnee_3)
End If
End If
0
mcs2006 Messages postés 58 Date d'inscription dimanche 19 mars 2006 Statut Membre Dernière intervention 1 mai 2006
1 avril 2006 à 16:48
Une autre manière de faire, avec moins de lignes de code, surtout si ça dépasse les 3 données.

Une procédure de ce type :

Sub concatenation(ByRef result, ByVal donnee)

If Trim(donnee) <> "" Then
If result <> "" Then
result = result & " - " & Trim(donnee)
Else
result = Trim(donnee)
End If
End If

End Sub

et, à la place du code que je t'ai proposé dans mon 1er post :

Call concatenation(result, donnee_1)
Call concatenation(result, donnee_2)
Call concatenation(result, donnee_3)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 avril 2006 à 16:49
Salut
Je te propose cette solution (VB6) qui définit s'il faut un séparateur ou pas en fonction du contenu des variables.
On insère les deux variables, de toute façon, si l'une d'elle est vide, ce n'est pas grave !

Result = Trim({EVT\BLK\TL\Search Name}) & _
IIf((Len(Trim({EVT\BLK\TL\Search Name})) = 0) Or _
(Len(Trim({EVT\BLK\CY\Search Name})) = 0), "", " - ") & _
Trim({EVT\BLK\CY\Search Name})

Rappel : Les concaténations de chaines se font avec & et pas +

Question : Pourquoi des accolades { et } ? je ne connais pas. C'est quel langage ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
Rejoignez-nous