IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Iif: pluriel et fusion


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 19
    Points
    19
    Par défaut Iif: pluriel et fusion
    Bonjour à tous,

    Venant du monde C, j'ai cherché l'équivalent de l'opérateur ternaire pour afficher mes pluriels, mais je n'avais rien trouvé concernant ce sujet... alors je me dis que cela pourrait intéresser certains...

    Je trouve qu'il permet d'écrire du code élégant et pratique.

    Là où je m'en sers le plus, c'est effectivement pour afficher des messages gérant les pluriels...

    Ainsi, au lieu d'afficher un "Il y a XXX record(s) à traiter", l'opérateur ternaire permet d'écrire en une ligne 'record' s'il n'y en a qu'un, ou 'records' s'il y en a plus d'un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ma_phrase= "Il y a " + CStr(nb) + " record" + iif(nb>1;"s";"") + " à traiter"
    Le iif étant noyé au milieu de ma ligne, il ne se voit pas, et pourtant cela gère le pluriel sans alourdir le code par un if then else

    S'il y a plusieurs pluriels, on peut optimiser le code pour ne tester qu'une seule fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim s As String
     
    s=iif(nb>1;"s";"")
     
    phrase = "Il y a " + CStr(nb) + " record"+s + " concerné"+s +". Voulez-vous le"+s +" supprimer ?"
    Le code est très lisible et peut donner :
    "Il y a 1 record concerné. Voulez-vous le supprimer ?"
    "Il y a 3 records concernés. Voulez-vous les supprimer ?"


    Autre usage intéressant : la sélection conditionnée de champ... (fusion en un champ)

    Imaginons un coliseur disposant d'une table des transports. Cette table va contenir la description de tous les colis à transporter :
    [N°colis unique]
    [Lieu de chargement]
    [Date/Heure de chargement]
    [Lieu de livraison]
    [Date/Heure de livraison]
    [État du transport]

    Chaque record aura donc 2 adresses postales et 2 horaires (livraison en J+x)

    Dans la tournée d'un chauffeur, il y aura aléatoirement des chargements et des livraisons de colis, afin d'optimiser les KM

    Si je veux faire un récap journalier de la tournée d'un chauffeur, il suffit que dans ma requête, en mode création, j'indique :
    [N°colis unique]
    [État]
    Endroit: iif([État]="Livré";[Lieu Livraison];[Lieu Chargement])
    Heure: iif([État]="Livré";[Date/Heure Livraison];[Date/Heure Chargement])

    et voilà, en triant par ordre croissant sur le champ Heure, j'obtiens le récap journalier du chauffeur, sans me soucier de savoir s'il s'agit d'un chargement ou d'une livraison...

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Un petit complément sur le iif() qui est en effet très utiles dans certaines circonstances : les 2 solutions proposées (si condition vraie et si conditions fausses) sont évaluées donc si l'une génére une erreur cela peut bloquer complétement. Le if then esle permet d'éviter cela.

    A+

Discussions similaires

  1. Fusion de lignes de tables en éliminant les redondances
    Par MinsK dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 22/04/2004, 09h21
  2. Fonction IIF
    Par ParisMath dans le forum SQL
    Réponses: 2
    Dernier message: 16/01/2004, 22h18
  3. [MFC]Info sur da la fusion sous Word
    Par kor dans le forum MFC
    Réponses: 6
    Dernier message: 22/08/2003, 11h14
  4. Fusion directe dans word
    Par wozzy dans le forum Access
    Réponses: 10
    Dernier message: 03/06/2003, 21h02
  5. Tri par fusion d'un tableau
    Par Mailgifson dans le forum C
    Réponses: 5
    Dernier message: 12/12/2002, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo