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 :

Problème de décimales dans un formulaire continu [AC-2016]


Sujet :

Access

  1. #1
    Membre régulier
    Femme Profil pro
    Responsable audit interne
    Inscrit en
    Février 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable audit interne
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 67
    Points : 91
    Points
    91
    Par défaut Problème de décimales dans un formulaire continu
    Bonjour à tous,

    J'ai une table avec des salaires, qui ont au maximum 2 décimales après la virgule, que j'ai mis en réel double.
    Je les affiche dans un sous-formulaire continu dans un formulaire où on peut sélectionner le salarié par une liste déroulante.
    Le format du montant dans le sous-formulaire est "Euro".
    Visuellement c'est bon, j'ai bien un affichage avec 2 chiffres après la virgule. Mais si l'utilisateur clique sur la ligne, plein de décimales apparaissent !

    par exemple : "2 132,81 €" devient "2132,81005859375" ce qui n'est pas beau du tout... et quid de ces mystérieuses décimales ?

    J'ai pris connaissance d'une discussion similaire :
    https://www.developpez.net/forums/d1...males-requete/

    Mais le round(salaire,2) ne fait que de changer visuellement (j'ai testé avec 0 par ex), mais pas quand on clique sur la ligne. Et quand je mets mon champ en type Décimal, je perds mes décimales dans ma table !
    Je suis donc perdue sur la marche à suivre...

    Merci par avance pour votre aide !

  2. #2
    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.

    quid de ces mystérieuses décimales ?
    Les ordinateurs (et ceux quel qu'ils soient) ne sont pas capable comme l'esprit humain de gérer une suite de décimales infinies nécessaire pour les réels.
    De plus ils sont limités par la conception interne des circuits mémoires.
    Et ils stockent donc une bonne approximation du nombre que tu leur donne.

    Je suis donc perdue sur la marche à suivre...
    Pour le type "Décimale" c'est la propriété Échelle qui détermine le nombre de décimales.
    ex : si tu as une précision de 18 et une échelle de 2, tu vas pouvoir stocker un nombre avec 16 chiffres avant la virgule et 2 chiffres après soit au total 18 chiffres.
    Si tu choisis une échelle de 4, tu as 14 chiffres avant la virgule et 4 après, toujours pour le même nombre total de chiffre.
    Je pense que cela va répondre à ton besoin.

    En passant Échelle est la traduction de "scale" mot anglais qui ne provoque pas la confusion avec l'outil de chantier.
    Cela se rapporte à la notion de multiplication comme dans "l'échelle d'une carte routière" ou "économies d'échelle".

    Une autre solution mais plus pénible est de stocker le nombre sous forme d'entier donc 123,45 devient 12345.
    Il faut en tenir compte lors des calculs et à l'affichage 'insérer' la virgule pour que l'humain s'y retrouve, et ce n'est vraiment pas 'naturel'.

    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.

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 264
    Points : 19 432
    Points
    19 432
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Question naïve :

    Pourquoi utiliser le type réel double pour stocker un montant, pourquoi ne pas utiliser le type monétaire ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    C'est beau des nombres décimaux !
    Si vous voulez que les décimales ne froissent pas l'esthétique du champ il vous suffirait tout simplement de le verrouiller.
    D'ailleurs quelle idée d'aller cliquer sur le champ !
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    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.


    Citation Envoyé par User
    Pourquoi utiliser le type réel double pour stocker un montant, pourquoi ne pas utiliser le type monétaire ?
    J'ai eu la même idée que toi et en Access 2010 je ne vois plus le type monétaire (qui de plus avait la réputation d'être bogué).
    Donc je pense que M$ l'a remplacé par (silencieusement) par le type décimale ... ou alors je ne suis franchement pas réveillé.

    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.

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    bonsoir Marot_r,
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    J'ai eu la même idée que toi et en Access 2010 je ne vois plus le type monétaire (qui de plus avait la réputation d'être bogué).
    Donc je pense que M$ l'a remplacé par (silencieusement) par le type décimale ... ou alors je ne suis franchement pas réveillé.

    A+
    réveille-toi René , le type Monétaire (Currency) n'a pas disparu, en tous cas, pas jusqu'à la version 2013 et c'est un type de données à part entière alors que Décimal est une catégorie "Taille de champ" (Size) du type de données Numérique, bien pratique, il est vrai.

    Par contre, je n'ai jamais entendu parler de cette réputation que tu lui prêtes et ce, depuis 24 ans que je l'utilise ...
    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 ?

  7. #7
    Membre régulier
    Femme Profil pro
    Responsable audit interne
    Inscrit en
    Février 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable audit interne
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 67
    Points : 91
    Points
    91
    Par défaut
    Bonjour à tous, et surtout merci beaucoup pour vos réponses !

    Pour le type "Décimale" c'est la propriété Échelle qui détermine le nombre de décimales.
    En effet, j'étais totalement passée à côté de cette propriété "Echelle". J'ai modifié ainsi le format de mon champ, avec Echelle = 2 et cela fonctionne ! Par contre, est-ce que ce format risque de poser problème pour mes fonctions ? (ou je déclare en 'Double' en paramètre d'entée)
    Et quid si le montant est issu d'une requête (montant calculé) et non d'une table ?

    Pourquoi utiliser le type réel double pour stocker un montant, pourquoi ne pas utiliser le type monétaire ?
    Parce que je veux reprendre ensuite mon modèle de sous-formulaire pour des données numériques autres que des montants (ex : nombre d'heures).

    Si vous voulez que les décimales ne froissent pas l'esthétique du champ il vous suffirait tout simplement de le verrouiller.
    J'avais essayé en effet, mais visuellement ce n'est vraiment pas beau !! (devient tout grisé)

    D'ailleurs quelle idée d'aller cliquer sur le champ !
    1) Parce que j'essaie de penser à toutes les bizarreries que pourrait me faire un utilisateur, et que je ne veux pas qu'on me dise que mon appli bugge parce que mes données ont plein de décimales, et que les totaux générés ensuite ne sont pas exacts ;

    2) Parce qu'en fait, j'essaie de remplacer une listbox par un sous-formulaire, car j'étais très embêtée par le visuel de ma listbox avec le format numérique aligné à gauche. J'avais bien bidouillé une fonction qui me rajoutait des espaces avant, mais je devais alors prendre une police non proportionnelle, et ça restait vraiment pas très beau à voir...

    La finalité, étant de reproduire le même comportement que la listbox avec mon sous-formulaire continu, et donc que l'utilisateur clique sur la ligne pour la sélectionner (et ensuite la modifier). D'ailleurs il faut encore que je trouve un moyen de m'affranchir du sélecteur qui n'est pas très beau...

    Donc pour l'instant la solution de l'échelle me convient ! a suivre pour l'histoire des fonctions et champs calculés par requêtes.

  8. #8
    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
    Ok, merci tee-Grandbois, en effet je l'avais cherché parmis les numériques (suis-je bête, la monnaies n'a rien à voir avec les nombres :-) ).

    Pour le "bug".

    J'ai pris l'info là :

    Ça touche principalement les gens qui comme moi travaillent dans un environnement bilingue qui n'utilise pas les même conventions pour la présentation des nombres.

    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.

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    Bonjour,
    Ça touche principalement les gens qui comme moi travaillent dans un environnement bilingue qui n'utilise pas les même conventions pour la présentation des nombres.
    merci René pour l'info, mais cela concerne un environnement bien spécifique ...
    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 ?

  10. #10
    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
    merci René pour l'info, mais cela concerne un environnement bien spécifique ...
    En effet, désolé pour la généralisation.

    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.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/07/2008, 03h47
  2. Réponses: 6
    Dernier message: 23/04/2007, 15h42
  3. problème d'accents dans le formulaire de contact
    Par Rocket666 dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2006, 14h38
  4. problème d'accents dans le formulaire de contact
    Par Rocket666 dans le forum Langage
    Réponses: 2
    Dernier message: 04/02/2006, 14h48
  5. problème de calcul dans un formulaire
    Par Bray02 dans le forum IHM
    Réponses: 1
    Dernier message: 07/12/2005, 11h45

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