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

VBA Access Discussion :

Chiffre décimal, virgule et point


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut Chiffre décimal, virgule et point
    Bonjour,je fais une appli qui travaille avec des fichiers excel qui contiennent des données numériques décimales.
    Sur mon poste tout se passe bien l'appli fonctionne, par contre je l'ai testé sur un autre poste et la ça plante sur une requete à cause de la virgule dans le chiffre.
    Explication, sur mon poste les options de configuration font que les chiffres s'affichent avec un point (la pas de probleme). Sur le poste qui pose probleme les chiffres s'affichent avec une virgule et la requete considère que c'est la fin d'un champs donc ça plante....
    Qu'est ce que je dois faire ? je ne vais pas demander aux utilisateurs de changer leur options d'affichage des chiffres ? Donc je sais pas trop. Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    En SQL le séparateur décimal est le point.
    J'utilise la fonction VBA Str pour convertir les nombres à virgules, en chaînes de caractères.
    Str converti en mettant un point comme séparateur décimal.

    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par LedZeppII Voir le message
    Bonjour,

    En SQL le séparateur décimal est le point.
    J'utilise la fonction VBA Str pour convertir les nombres à virgules, en chaînes de caractères.
    Str converti en mettant un point comme séparateur décimal.

    A+
    Bonjour, merci pour ta réponse. Ce qui me semble louche c'est qu'on converti un chiffre en cahine de caractere alors que dans la table ce chiffre va dans un champs de type numérique, ça pose pas de problème ? Je suppose que non puisque tu me le dis.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,
    Citation Envoyé par _developpeur_ Voir le message
    Bonjour, merci pour ta réponse. Ce qui me semble louche c'est qu'on converti un chiffre en cahine de caractere alors que dans la table ce chiffre va dans un champs de type numérique, ça pose pas de problème ? Je suppose que non puisque tu me le dis.
    Je ne sais pas exactement ce que tu fais, mais tu parles de problème au niveau d'une requête.
    Une requête est une instruction SQL, et cette instruction est du texte.
    Comme en VBA, il y a des conventions pour typer les valeurs :
    Le point comme séparateur décimal pour les valeurs numériques.
    Les dates encadrées par des dièses (#) et au format mois/jour/année.
    Les chaînes de caractères encadrées par des guillemets doubles ou simples.
    True/False ou -1/0 pour les valeurs booléennes.

    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par LedZeppII Voir le message
    Bonjour,

    Je ne sais pas exactement ce que tu fais, mais tu parles de problème au niveau d'une requête.
    Une requête est une instruction SQL, et cette instruction est du texte.
    Comme en VBA, il y a des conventions pour typer les valeurs :
    Le point comme séparateur décimal pour les valeurs numériques.
    Les dates encadrées par des dièses (#) et au format mois/jour/année.
    Les chaînes de caractères encadrées par des guillemets doubles ou simples.
    True/False ou -1/0 pour les valeurs booléennes.

    A+
    Bonjour,
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim sql as string
    dim somme as integer
     
    sql="INSERT INTO Table ('Somme') VALUES (" & somme & ")"
    Le champs somme dans la table est de type numérique. C'est pour ça que je ne met pas de cote:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql="INSERT INTO Table ('Somme') VALUES ('" & somme & "')"
    Si je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql="INSERT INTO Table ('Somme') VALUES (" & Cstr(somme) & ")"
    Je convertis une variable de type numérique en chaine alors que somme dans la table est de type numérique, c'est cela que je ne comprends pas en fait ?

    Merci

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,
    Citation Envoyé par _developpeur_ Voir le message
    Je convertis une variable de type numérique en chaine alors que somme dans la table est de type numérique, c'est cela que je ne comprends pas en fait
    Tu es dans le cas de figure instruction SQL. Du texte.
    D'ailleurs ta variable sql est typée texte (type String).

    Tu peux faire l'essai sur un PC configuré avec la virgule comme séparateur décimal.
    Tu crée ta requête avec Access avec une valeur numérique 123,456.
    Puis tu changes le mode d'affichage en mode SQL.
    Tu verra que dans l'instruction SQL (qui est du texte) la virgule est remplacée par un point (123.456).
    Tu changes à nouveau le mode d'affichage en mode création.
    La virgule est toujours là (123,456).

    A+

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par LedZeppII Voir le message
    Bonjour,

    Tu es dans le cas de figure instruction SQL. Du texte.
    D'ailleurs ta variable sql est typée texte (type String).

    Tu peux faire l'essai sur un PC configuré avec la virgule comme séparateur décimal.
    Tu crée ta requête avec Access avec une valeur numérique 123,456.
    Puis tu changes le mode d'affichage en mode SQL.
    Tu verra que dans l'instruction SQL (qui est du texte) la virgule est remplacée par un point (123.456).
    Tu changes à nouveau le mode d'affichage en mode création.
    La virgule est toujours là (123,456).

    A+
    merci, j'ai implémenté le st(chiffre) a chaque fois que je travaille avec des chiffres qui peuvent contenir des virgules, je l'ai fait au moment de construire ma requete, et la virgule est bien remplacé par un point.
    Merci

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

Discussions similaires

  1. Séparateur décimal : virgule ou point
    Par Invité dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 14/11/2013, 12h19
  2. Virgule et point décimal
    Par Stevens.Georges dans le forum Langage
    Réponses: 2
    Dernier message: 14/01/2009, 13h04
  3. Décimale sur 4 chiffres après virgule
    Par Alexr dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 04/06/2008, 14h04
  4. Réponses: 4
    Dernier message: 15/06/2006, 17h47
  5. [VBExpress2005] Point décimal/virgule dans un masque de saisie
    Par BassBeat dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/05/2006, 23h57

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