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 :

multiplication avec champs texte


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut multiplication avec champs texte
    Bonjour à tous!

    J'ai un problème que je n'arrive pas à résoudre, et n'ayant pas utilisé Access depuis près de deux ans, le retour est assez dur...

    Voici mon problème:

    -Je dispose d'une table produits, avec laquelle je souhaite obtenir le Chiffre d'Affaires réalisé par fournisseur.
    Le CA est obtenu en réalisant le calcul price * qtyNet, mais le problème vient du fait que ces champs ont été paramétrés comme étant des champs texte, et non numériques...

    Il faudrait que je fasse un calcul du genre (price * qtyNet) as CA

    Si quelqu'un a une solution, qu'il n'hésite pas

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    pour calculer il faut convertir, regarde l'aide sur CDbl()

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Merci de ta rapidité mais je ne trouve rien dans l'aide d'access à ce sujet

    (pour info j'utilise access 2000)

    Autre précision, j'essaie de réaliser ce calcul grâce à une requête sql

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Rectification, CDbl() a l'air de fonctionner, mais j'ai un autre problème maintenant, tous les enregistrements sont de la forme "1.25" et cela fonctionne lorsqu'on remplace le point par une virgule pour obtenir "1,25".

    Quelqu'un saurait-il comment faire pour ne pas modifier la base (qui arrive d'un autre logiciel) et réaliser le calcul évoqué précédemment dans une requête?

    Merci

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    dans ce cas, utiliser la fonction Val()

    Philippe

  6. #6
    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
    Je ne suis pas sur que val() fonctionne mieux que CDbl() donc voici une solution alternative :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cdbl(replace([MonChampTexte],".",","))
    Autre alternative changer le setting régionnal de ta machine pour US.

    A+

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour marot_r,

    Je ne suis pas sur que val() fonctionne mieux que CDbl()
    Si,si, voici un extrait de l'aide la fonction Val() :
    Note La fonction Val ne reconnaît que le point comme séparateur décimal (.). Lors de l'utilisation d'autres séparateurs décimaux (applications internationales, par exemple), convertissez la chaîne en nombre à l'aide de la fonction CDbl.
    cordialement,

    Philippe

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Bonjour à tous, et merci pour vos réponses.

    Voici la requête que j'utilise:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT (CDbl(price)*CDbl(qtyNet)) AS CA, Products.qtyNet, Products.price, Products.supplier, Organisations.companyName
    FROM Organisations INNER JOIN Products ON Organisations.UID = Products.supplier
    ;


    J'obtiens donc des résultats quand je remplace les points servant de séparateurs décimaux dans les tables, sinon cela créé une erreur.

    LA fonction val() fonctionne dans les requêtes?

    (Je ne peux pas changer le réglage régional de ma machine, c'est déjà un windows anglais paramétré en français , et surtout, ce n'est pas la mienne)

  9. #9
    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
    Merci philben, j'ignorais cette particularité de Val.

    fred_vannes56, la plus part des fonctions visual basic fonctionnent dans les requêtes Access. Tu peux même utiliser tes propres fonctions du moment qu'elles sont déclarées publiques. Attention toute fois cela peut avoir un impact sur la performance.

    A+

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Points : 29
    Points
    29
    Par défaut
    Merci à tous pour vos réponses

    Etant donné que les requêtes tourneront sur des machines anglaises, le séparateur décimal ne sera plus un problème!

    Bonne journée!

    a+

    Fred

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/03/2010, 08h14
  2. [AC-2003] Sum avec champ texte
    Par Nana35 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/06/2009, 20h01
  3. Réponses: 6
    Dernier message: 25/04/2008, 11h35
  4. [Optimisation] Tables avec champs textes
    Par sietjp dans le forum Administration
    Réponses: 4
    Dernier message: 10/01/2008, 21h21
  5. alimenter liste deroulante avec champs texte
    Par logone dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 26/05/2006, 11h53

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