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

Requêtes et SQL. Discussion :

Calculer avec VRAIFAUX


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut Calculer avec VRAIFAUX
    Bonjour,

    Dans une requête je fais un calcul avec une condition j'ai le champ calculé "CALCUL" si son montant et < 100, Access doit écrire le chiffre du champ "CALCUL" sinon il doit écrire "100" jusque la pas de problème, maintenant si le champ "CALCUL" est à zéro "0" il faudrait qu'Access écrive "0" et la ça ne fonctionne pas.

    Voici le formule de Tranche 1 de ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tranche 1: VraiFaux([calcul]<100;[calcul];VraiFaux([calcul]=0;0;100))
    Merci d'avance pour vos conseils et idées

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    C'est normal que cela ne fonctionne pas, car dans ta première condition <100, tu as obligatoirement le 0 d'inclus, donc c'est vrai et tu ne peux faire le test du calcul.

    Il faut que tu tests d'abord le 0 et ensuite l'infériorité à 100.

    Starec

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Merci Starec,

    Autrement dit je dois dire à Access de mettre "0" avant de positionner le montant du calcul si celui-ci est > à ce "0" ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Citation Envoyé par Philippe608 Voir le message
    Merci Starec,

    Autrement dit je dois dire à Access de mettre "0" avant de positionner le montant du calcul si celui-ci est > à ce "0" ?
    En résumé il faudrait tenter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tranche 1: VraiFaux([calcul]=0;0;VraiFaux([calcul]<100;[Calcul];100))
    Starec

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Encore merci, mais ça ne fonctionne pas, si le champ "calcul" est = à 0 ou vide le champ expr : donne "100" et non "0"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    expr : VraiFaux([calcul]=0;0;VraiFaux([calcul]<100;[Calcul];100))
    donne 100

    Merci pour une idée.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Je viens de faire un essai avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    expr : VraiFaux([calcul]="";"";VraiFaux([calcul]<100;[Calcul];100))
    Mais rien à faire j'ai toujours 100 à la place de zéro.

    @+

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut à tous,

    Philippe608> je ne comprends pas pourquoi ce code ne te convient pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tranche 1: VraiFaux([calcul]<100;[calcul];100)
    pense à utiliser la fonction nz() si [calcul] a des enregistrements vide.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Bonjour Vodiem,

    Ce code me convient bien, or il n'est pas fiable car si le champ calcul est vide ou "0" le champ tranche 1 doit être également à "0" alors qu'il marque "100"

    Si le champ "calcul" contient par exemple 52 le champ tranche 1 écrit '52'
    la c'est bon.

    Si le champ "calcul" est par exemple >100 le champ tranche 1 écrit 100 c'est bon également seul le zéro n'apparait pas sur la solution 1.

    Peut-être je raisonne mal, j'ai écris la même formule dans Excel et là c'est parfait.
    Merci d'avance.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Voici une image de ma requête :

    http://www.cijoint.fr/cjlink.php?fil...1294565555.bmp.

    @+

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 300
    Points : 106
    Points
    106
    Par défaut
    Salut Philippe608,

    Voici la formule qui devrait te faire plaisir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tranche 1: VraiFaux([calcul]="";"";VraiFaux([calcul]<100;[Calcul];VraiFaux([calcul]>100;100;[calcul])))
    ça devrait fonctionner, dis nous si c'est bon.

    A bientôt
    AgriPhilou, les agriculteurs avec Access.

  11. #11
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    pour le cas vide je t'avais conseiller d'utiliser nz:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tranche 1: VraiFaux(nz([calcul],0)<100;nz([calcul],0);100)
    mais pour le cas ou c'est =0 j'ai du mal à croire qu'il ne te renvoie pas 0.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 300
    Points : 106
    Points
    106
    Par défaut
    Rebonjour,

    Vodiem, tu as raison ta formule est plus précise que la mienne et surtout plus simple, les zéros sont bien aux rendez-vous.

    Félicitations
    Amicalement

    Philippe608 devrait être heureux de cette réponse.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Merci à vous tous,

    Me voici en effet ravis de vos réponses, j'été sûr de trouver mon bonheur sur ce forum.

    encore merci.

  14. #14
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    AgriPhilou> merci,
    j'ai oublié te souhaiter la bienvenu sur le forum
    bonne continuation à tous.

  15. #15
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Points : 44
    Points
    44
    Par défaut MEME SOUCI
    Bonjour, j'ai un souci similaire. Je me suis aider de la fonction Nz aussi

    Pourriez vous m'aider ?

    J'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VraiFaux(nz([D]="";[D]-[C]);nz([C]="";[D]);[D]-[C])
    Mais, il ne me calcule seulement les champs remplis ; Pour les champs vide je voulais mettre :

    Si cest un Débit qui est vide Alors mettre - Crédit
    Si cest un Crédit qui est vide Alors mettre Débit
    Sinon faire la différence de ces 2 champs

  16. #16
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut zilfana63,

    nz() ne renvoie pas true/false, vraifaux risque de "merdouiller".

    pour ton cas je ferais:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    abs(nz([d],0)-nz([c],0))

  17. #17
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Points : 44
    Points
    44
    Par défaut
    Je te remercie vodiem

    J'ai fais exactement comme tu m'a écris sauf que j'ai mis des ";" à la place des ","

    Comment je pourrais mettre un "-" si le crédit est supérieur que le débit ?

  18. #18
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Citation Envoyé par zilfana63
    ";" à la place des ","
    oui parceque j'ai fourni le code en SQL.

    pour ce qui de crédit>débit tu as raison,
    il faudrait:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    (nz([d],0)-nz([c],0))*(isnull(d)*2+1)
    sinon il y a encore la solus des iif...

  19. #19
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2008
    Messages : 88
    Points : 44
    Points
    44
    Par défaut
    merci beaucoup vodiem j'ai obtenu le signe négatif pour le cas où Débit et Crédit sont remplis ; j'aurais bien voulus avoir quand même le "-" pour le montant au crédit..

    Mais la solution avec les iif cest pas la fonction VraiFaux ?

  20. #20
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    oui, iif=vraifaux

    le code qu'il faudrait logiquement faire c'est:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    iif(isnull([d]),iif(isnull([c]),[d]-[c],[c]),iif(isnull([c]),[d],[d]-[c]))

    Citation Envoyé par zilfana63
    j'aurais bien voulus avoir quand même le "-" pour le montant au crédit..
    je n'ai pas compris.
    avec:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    (nz([d],0)-nz([c],0))*(isnull(d)*2+1)
    tu devrais normalement avoir le même résultat que le précédent avec les iif.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2007] Calcul avec VraiFaux
    Par Nounours1 dans le forum IHM
    Réponses: 2
    Dernier message: 02/06/2009, 20h39
  2. Calcul avec des flottants
    Par tarzent dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/12/2005, 11h20
  3. Temps de calcul avec deux écrans
    Par Shaga dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/11/2005, 09h24
  4. Faire du calcul avec la valeur d'un élément/attribut
    Par camboui dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 03/11/2005, 16h10
  5. Réponses: 2
    Dernier message: 22/03/2004, 10h50

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