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 :

Utilisation de variable contenant des nombres a virgule en SQL


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Utilisation de variable contenant des nombres a virgule en SQL
    Bonjour a tous

    Dans mon dernier message, j'avais demandé comment faire pour utiliser une variable dans une requête et ça marche parfaitement maintenant sauf quand cette variable contient des nombres a virgules

    je détaille
    voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cmdADO.CommandText = "SELECT CALIBRE 
    FROM CARACTERISTIQUE 
    WHERE CALIBRE=" + CmbCalibre.Text
    Jusque là c'est bon
    ensuite CmbCalibre.Text=0,5

    et quand j'execute j'ai le message d'erreur suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    erreur de syntaxe(virgule) dans l'expression
    'CALIBRE=0,5'
    par contre avec des point ça marche, mais ça ne m'arrange pas car tout les nombres decimaux de la base sont à virgule

    donc j'aimerai savoir si il y a un moyen ou si je dois "m'amuser" a changer tout le nombre de la base

    merci

  2. #2
    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
    1) L'opérateur de concaténation est & et non pas +
    2) si CALIBRE est une chaine, il faut des ' en plus
    3) utiliser Replace, pour remplacer les virgules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE CALIBRE= '" & Replace(CmbCalibre.Text, ",", ".") & "'"
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    merci mais ça resoud pas totalement le problème, il inscrit maintenant comme erreur:

    erreur de syntaxe(operateur absent ) dans l'expression
    'CALIBRE=0,5'

    au lieu de
    erreur de syntaxe(virgule ) dans l'expression
    'CALIBRE=0,5'

    je vois pas quel operateur il faut mettre

  4. #4
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Hum, Hum ...
    Alors, les ' sont fait pour encadrer la "valeur" et non le nom du champs

    Je sais, je sais. je suis trop bon. Mais non, on peut pas tout savoir et je parle en connaissance de cause

    PS: relie le post de ThierryAIM de 12h07
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Alors je vais peut etre vous faire rire encore (ou pleurer je sais pas trop...)

    donc j'ai repris le code de ThierryAIM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE CALIBRE= '" & Replace(CmbCalibre.Text, ",", ".") & "'"
    Ensuite une erreur est survenue(je la réecrie car je l'avais volontairement racourci, mais vous l'avez pas compris peut etre l'avais je mal ecris ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    erreur de systaxe(opérateur absent) dans l'expression 
    'FROM CARACTERISTIQUE WHERE CALIBRE= '0.5' '
    les ' au debuts et a la fin étaient pour delimiter la requete et il est vrai que j'avais oublié d'encadrer la valeur par des ' '

    Je te remercie avigeilpro d'avoir tenté de m'aider, mais l'erreur ne venait pas de là car je n'avais pas de "valeur" directement, mais une valeur dans une variable et je pensait que le code de ThierryAIM le faisait déja et il le fait(cf les codes ci dessus , 0.5 est entre ' ')

    Ma deuxième erreur venez d'une erreur de frappe que j'ai revue apres

    Mais voila j'ai encore une erreur ( et peut etre une nouvelle place au betisier):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Types de données incompatible dans l'expression du critère
    je vous remet la ligne de code entiere des fois que vous puissiez m'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    FROM CARACTERISTIQUE,THERMIQUE 
    WHERE CARACTERISTIQUE.CALIBRE= '" & Replace(CmbCalibre.Text, ",", ".") & "'" 
    & " and CARACTERISTIQUE.THERMIQUE=THERMIQUE.THERMIQUE "

    normalement cette erreur vient du fait (je crois )qu'il n'y ai pas de ' mais la ils y sont , d'apres le code de ThierryAIM

    cette erreur apparait aussi maintenant pour les nombres entiers alors que ce n'etait pas le cas avant

    merci encore

    ps: la requete precedente est sur une seule ligne, je l'ai mis sur plusieur ligne pour faciliter la lecture

  6. #6
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Ton champs CALIBRE et de quel type ? Si ce n'est pas un champs de type Texte, alors il est normal que tu ait une erreur
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    effectivement ce n'est de type texte, c'est du numerique!
    je dois le mettre de type texte ou y a t-il un autre moyen ??

  8. #8
    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
    ALORS SUPPRIME LES ' ET RENDS TA VALEUR NUMERIQUE !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE CALIBRE= " & Val(Replace(CmbCalibre.Text, ",", "."))
    tu crois que je suis madame Soleil !!!!

    c'est pas vrai, dites-moi que j'hallucine
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  9. #9
    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
    ce site est rempli de ressources sur les bases du langage SQL pour quasiment toutes les technos de la création !!!

    Si tu as la flemme de les lire, ne viens pas nous courir avec des questions bateaux dont la réponse se trouve partout
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  10. #10
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Tout a fait d'accord avec toi ThierryAIM, que de post inutiles si dès le départ les chose étaient dites clairement et si un peu de reflexion était mis en oeuvre afin de comprendre les erreurs.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    j'ai trouvé la solution , en fait il fallait utiliser la fonction replace sans les ' au debut et fin d'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE CALIBRE= " & Replace(CmbCalibre.Text, ",", ".")

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Et bien même si ça peut déranger certains, je remercie ce brave Rukawa d'avoir posé cette question, qui m'a permis de trouver la réponse à mon problème.

    Les cours et les didacticiels c'est bien, mais pour trouver une réponse à un problème précis on ne fait pas mieux que le bon vieux forum, selon moi bien sûr.

    N'en déplaise à certains qui semblent avoir oublié le principe de base de ces outils d'échange de connaissances. Vous êtes très compétents c'est chouette, mais dégonflez un peu les chevilles ça ne vous fera pas de mal messieurs. A moins que ce forum soit réservé aux uniques spécialistes ; dans ce cas avertissez le pauvre clampin qui passe par là pour demander de l'aide.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 02/09/2014, 09h59
  2. Recuperer une variable contenant des espaces
    Par phpaide dans le forum Langage
    Réponses: 9
    Dernier message: 30/05/2006, 16h07
  3. Tri sur une chaîne de caractères contenant des nombres
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2006, 11h52
  4. [VBA-E]Plage contenant des nombres et du texte
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2006, 18h33
  5. sum avec des nombres avec virgule
    Par Bruno2000 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/09/2004, 15h01

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