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

VB 6 et antérieur Discussion :

Prise en compte des virgules aléatoire selon le type de curseur ?


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Points : 77
    Points
    77
    Par défaut Prise en compte des virgules aléatoire selon le type de curseur ?
    A nouveau ce message qui avait été mal posté (meaculpa) !

    Bonjour, ce message simplement pour porter à votre connaissance une constatation surprenante que je viens de faire !

    Sur une form, j'ai un élément text destiné à recevoir un prix saisi. Je n'autorise donc que la saisie des chiffres et de la virgule. Lorsque j'enregistre la donnée en table access2000 (j'enregistre simplement Text.text), voici ce que j'obtiens :

    Curseur utilisé - montant saisi - montant enregistré
    adUseServer - 45 - 45,00
    adUseServer - 45,12 - 45,12
    adUseClient - 45 - 45,00
    adUseClient - 45,12 - 4512,00 ???????

    Dans ma table, il est simplement précisé que c'est une zone monétaire avec 2 décimale.
    Tout marche donc très bien avec un db.CursorLocation = adUseServer
    Mais bizarrement il semblerait qu'un db.CursorLocation = adUseClient ne prenne pas en compte une virgule saisie dans une zone text

    Quelqu'un a une idée

    Au passage j'en profite pour demander comment contrôler la saisie d'une virgule unique ? thanks

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Une idée oui, un solution, non
    Verifier ce qu'utilise le poste comme séparateur décimal a l'aide du paneau de configuration windows, options regionales

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Points : 77
    Points
    77
    Par défaut
    Ok, dans option régionales j'ai bien une virgule comme séparateur et 2 décimales par défault. Mais cela n'explique pas pourquoi, sur une même machine, simplement en changeant le type de curseur j'ai ce comportement

  4. #4
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par mosquitout
    Ok, dans option régionales j'ai bien une virgule comme séparateur et 2 décimales par défault. Mais cela n'explique pas pourquoi, sur une même machine, simplement en changeant le type de curseur j'ai ce comportement
    Si

    Le 1er cas (adUseServer==Access) sait reconnaitre le format des options régionales et enregistre toujours les données avec un . comme séparateur décimal, le second (adUseClient==VB6), non

    Fait un Replace(Text.text, ",", ".") avant d'enregistrer tes données dans Access ou lors de la saisie

  5. #5
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Désolé , pas d'explication, c'est en effet curieux

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Points : 77
    Points
    77
    Par défaut
    Merci pour ces explications.
    Cependant, ici le pb n'est pas d'avoir un point ou une virgule prise en compte lors de l'enregistrement dans la table access (là j'ai définie 2 décimale donc automatiquement j'aurai ces 2 décimales). Mais le pb est que avec 45,12 de saisi dans mon élément text, quand je valide et renseigne donc ma zone de table :

    Rst05!EMontant = Text(3).Text

    Quand je regarde le contenu de rst05!EMontant j'ai :

    dans un cas le contenu est bien enregistré tel quel (45,12)
    et dans l'autre cas c'est comme ci la virgule n'était pas lue (4512) !?

    et le tout est donc inscrit dans access...

    Enfin je sais pas si c'est clair

  7. #7
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    et si convertisais ton prix avant de l'envoyer dans la base de donnees. Tu aurais un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rst05!EMontant = CDec(Text(3).Text)

    je croit qie ca devrais fonctionner quelque soit le curseur.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2006, 17h02
  2. [Date dans Mysql] Prise en compte des espaces
    Par tchoukapi dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 02/01/2006, 03h41
  3. [MS-DOS] Prise en compte des accents
    Par Furius dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 15/11/2005, 13h30
  4. Prise en compte des réponses des posteurs
    Par hunter dans le forum Evolutions du club
    Réponses: 152
    Dernier message: 05/11/2005, 22h40
  5. Prise en compte des contraintes
    Par potanie dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/11/2004, 10h00

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