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

Access Discussion :

Contrôle calculé composé de plusieurs demandes [AC-2013]


Sujet :

Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut Contrôle calculé composé de plusieurs demandes
    Bonjour,

    Je suis dans un état et j'aimerais voir dans qu'elle catégorie ce retrouve mes évènement.

    J'explique :

    J'ai une liste d'évènement avec une date de début et une date de fin pour chacun. J'ai créer un contrôle calculé afin de savoir le nombre de jour entre les deux date.
    Maintenant je veux créer un nouveau champs calculé afin de savoir si l'évènement a une durée de a) Moins de 48 hrs, b) 3 à 5 jours c) 6 à 10 jours d) 10 à 20 jours, e) 20 jours et plus.

    Qu'elle contrôle serait le mieux? VraiFaux? Comment dois-je écrire ma formule?

    Je réussit seulement si j'ai deux options : =VraiFaux([NB]<=2;"Moins de 48 hrs";"Non disponible")

    Merci

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 647
    Points : 14 624
    Points
    14 624
    Par défaut
    Bonjour,
    essaie le PremVrai (Switch en anglais) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    premvrai([NB]<=2;"Moins de 48 hrs";[NB]>=3 and [NB] <=5;"3 à 5 jours";[NB]>=6 and [NB] <=10;"6 à 10 jours";[NB]>=11 and [NB] <=20;"11 à 20 jours";[NB]>20;"20 jours et plus";Vrai;"Non disponible")
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je vois les possibilités suivantes :

    • iif() imbriqé
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      iif(([NB]<=2;"Moins de 48 hrs"; iif([NB]<=5; "3-5 j"; iif([NB]<=10; "6-10 j"; iif([NB]<=20 ;"11-20 j"; "21 j et +"))))
      Direct mais devient assez vite illisible. Délicat à modifié.

    • Switch() : https://www.techonthenet.com/access/...ced/switch.php
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Switch([NB]<=2;"Moins de 48 hrs"; [NB]<=5; "3-5 j"; [NB]<=10; "6-10 j"; [NB]<=20 ;"11-20 j"; [NB]<=10000000; "21 j et +")
      Évite les parenthèses dans les parenthèses dans les parenthèses ...
      À mettre dans la requête source.

    • Fonction VBA publique :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      public function LireTranche(prmNB as long) as string
         dim result as string
         select case prmNB
             case <=2: result="0-2 j"
             case <=5: result="3-5 j"
             case <=10: result="6-10 j"
             case <=20: result="11-20 j"
             case else : result="21 j et +"
         end select
         LireTranche=result
      end function
      note : prm est une abréviation personnelle pour paramètre qui me permet de savoir que la variable vient de l'extérieur de la fonction.

      Utilisation :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      TonChamp=LireTranche([NB])
      Facile à comprendre et à modifier.

    • Table de paramètres :
      tbTranche :
      ValMin, entier long
      ValMax, entier long
      Tranche, texte

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      TonChamp=DFirst("Tranche"; "tblTranche"; [NB] & " between [valMin] and [valMax])
      L'intérêt majeur c'est que si tu ajoutes ou retire une tranche, tu n'as pas à changer ton code. Juste à jouter/supprimer/modifier ta tranche dans la table.



    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2013
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Super Merci le tout fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'un contrôle calculé
    Par Momo46 dans le forum IHM
    Réponses: 3
    Dernier message: 26/11/2006, 15h22
  2. Index composé de plusieurs colonnes
    Par Yannick GIRAUD dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/08/2006, 19h15
  3. calcul à partir de plusieur champs et affichage du resultat dans un champ
    Par carmen256 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 24/05/2006, 11h47
  4. Réponses: 12
    Dernier message: 16/05/2006, 17h47
  5. Réponses: 4
    Dernier message: 22/03/2006, 17h00

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