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 :

Requête convertir en monétaire le résultat d'un VRAIFAUX contenant date monétaire et texte [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 69
    Points : 93
    Points
    93
    Par défaut Requête convertir en monétaire le résultat d'un VRAIFAUX contenant date monétaire et texte
    Bonjour

    Dans une requête j'ai créé un champ calculé en fonction de la présence d'une date. La formule marche mais elle me renvoie un texte ( chiffre positionné à gauche) au lieu d'une valeur monétaire ce qui m'empêche de faire des calculs. Peut on me dire où j'ai fait une erreur.

    Ci dessous ma formule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MontantPayé: VraiFaux(EstDate([DateMiseEnPlace]);FormatCurrency([Montant]);"")
    J'ai également essayé de créer une seconde colonne basé sur le champ calculé précédent comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Montant:VAL([MontantPaye])
    En vain car lorsque le contenu du champ calculé [MontantPaye] est vide il s'affiche #Erreur

    Merci pour votre aide

  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
    Bonjour.

    C'est normal, "vide" n'est pas un nombre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant : iif(insull([MontantPaye]);0;[MontantPaye])
    Devrait résoudre ton problème.

    Access va traduire le nom des fonctions en français pour toi.

    A+

  3. #3
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Bonjour

    1) Si tu souhaites que MontPayé soit un nombre, il faut déjà remplacer "" par 0 pour éviter les #Erreur
    2) Quelle est l'utilité du FormatCurrency si tu veux faire des calculs derrière ? Comme il pose pb, tu le remplaces par CEnt , Cdbl...

    Il vaut mieux faire d'abord les calculs et mettre le format de présentation en final dans le formulaire ou l'état.

    Titi95

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 797
    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 797
    Points : 14 863
    Points
    14 863
    Par défaut
    Bonjour hyrkanie, marot_r, titit95,
    @ titit95
    2) Quelle est l'utilité du FormatCurrency si tu veux faire des calculs derrière ? Comme il pose pb, tu le remplaces par CEnt , Cdbl...
    je pense que ce n'est pas la bonne fonction, il faut utiliser CCur (CMonnaie en français) qui convertit une expression en type Monétaire (c'est comme Cdbl mais avec 4 décimales maximum), mais surtout pas CEnt qui renvoie un nombre entier sans décimales et don la valeur est limitée à 32767.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 69
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    C'est normal, "vide" n'est pas un nombre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant : iif(insull([MontantPaye]);0;[MontantPaye])
    Devrait résoudre ton problème.

    Access va traduire le nom des fonctions en français pour toi.

    A+
    merci mais ce n'est pas exactement ça que je voulais en fait je voulais dire: c'est si le contenu du champ [DateMisEnPlace] est une date donc n'est pas vide alors dans le champ calculé crée [MontantPaye] mets moi le contenu du champ [Montant], qui un montant en euros; sinon mets moi rien.
    Afin plus tard totaliser le contenu de ce champ calculé [MontantPaye] dans un formulaire qui s'appuierait dessus.
    Maintiens tu ce que tu me proposes?

    Citation Envoyé par titi95 Voir le message
    Bonjour

    1) Si tu souhaites que MontPayé soit un nombre, il faut déjà remplacer "" par 0 pour éviter les #Erreur
    2) Quelle est l'utilité du FormatCurrency si tu veux faire des calculs derrière ? Comme il pose pb, tu le remplaces par CEnt , Cdbl...

    Il vaut mieux faire d'abord les calculs et mettre le format de présentation en final dans le formulaire ou l'état.

    Titi95
    1) j'ai fait ce que tu m'as conseillé
    2) FormatCurrency je me disais qu'en créant ce deuxième champ calculé ça allait me le convertir en monétaire donc en nombre.


    Neanmoins avec tous vos conseils j'ai réussi a obtenir ce que je voulais

    avec un unique champ calculé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MtMisEnPlace: CMonnaie(VraiFaux(EstDate([DateMiseEnPlace]);[Montant];"0"))
    j'obtiens un montant en euros.

    Est ce correct pour ensuite totaliser dans un bas de formulaire?
    merci beaucoup

  6. #6
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    "Ça devrait le faire"...

    Cependant, j'insiste sur le fait qu'il est préférable (sauf cas particulier bien sûr) de mettre des formats, arrondis... en final lors de la présentation (formulaires et états).

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 69
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par titi95 Voir le message
    "Ça devrait le faire"...

    Cependant, j'insiste sur le fait qu'il est préférable (sauf cas particulier bien sûr) de mettre des formats, arrondis... en final lors de la présentation (formulaires et états).
    C'est noté; j'ai essayé, et cest mieux. Et ça marche. Merci

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

Discussions similaires

  1. Quelle requête SQL pour obtenir mon résultat ?
    Par nicolas.pied dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/02/2007, 09h58
  2. requête sql : caractères accentués et résultat nul
    Par mappy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/08/2006, 12h27
  3. [MySQL] Requête SUBSTRING et CHAR_LENGTH sans résultat
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/08/2006, 12h50
  4. [MySQL] Filtrage par ma requête sql en fonction du résultat d'un combo box
    Par digger dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/02/2006, 17h25
  5. Requête SELECT problème dans les résultats trouvés ...
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/10/2005, 12h46

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