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 :

type de donnée incompatible


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut type de donnée incompatible
    Rebonjour !!!

    j'ai un probleme qui vient de cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rst.Open "SELECT Nom, Phonex FROM Ville WHERE Phonex = '" & c & "'", cnx
    Dans ma base de donnée le champ phonex est en numerique (decimal) et j'ai declaré la variable "c" en double

    On va encore me dire "as tu essayer de regarder sur google" donc cette fois ci oui j'ai regardé, c'est un probleme dans le type donc j'ai essayer de le mettre en variant mais rien n'y fait !! Y'a-t-il un probleme dans mes cotes ???

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    ton probleme est SQL,

    quand on cherche une valeur numerique on ne met pas de quote.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    ok j'ai essayer, j'ai toujours une erreur mais elle est d'un autre type merci est desolé pour mon faible niveau en sql !! merci encore

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    En fait mon nouveau probleme est liée au probleme d'avant, c'est l'histoire des quotes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1: non valide
    rst.Open "SELECT Nom, Phonex FROM Ville WHERE Phonex =  c ", cnx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    2: probleme de connection du a la double quote derriere cnx
    rst.Open "SELECT Nom, Phonex FROM Ville WHERE Phonex =  c ", cnx
    Sa m'embete de demander sa mais qu'elle est la bonne syntaxe ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rst.Open "SELECT Nom, Phonex FROM Ville WHERE Phonex =" &  Cstr(c) , cnx

  6. #6
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rst.Open "SELECT Nom, Phonex FROM Ville WHERE Phonex =  " & cstr(c) , cnx
    ca devrait faire l'affaire

    edit : grilled

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Pour une fois !

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    Heu oui... y'a du changement dans l'erreur :
    erreur de syntaxe(virgule dans l'expression phonex

    J'ai declarer "c" en variant est-ce que je dois le declarer d'un autre type ?

  9. #9
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    As-tu essayé de déclarer c en Single ? Quel est l'espace mémoire utilisé par ton format numérique (Décimal) dans ta base de données ? (si tu as un moyen de le savoir)

    Le type Variant est une espèce de fourre-tout et ne permettra pas de détecter des erreurs de type de données plus graves. De plus il prend beaucoup de place inutilement (sauf dans les cas où on n'a pas le choix).

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Et si tu nous montrais la valeur que prend "c". Je sens qu'on aura des surprises...

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

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par Phifi
    Et si tu nous montrais la valeur que prend "c". Je sens qu'on aura des surprises...
    genre une , comme séparateur décimal ..... ou un numéro de téléphone contenant une pause (donc une ,) mais qui ne peut pas être un nombre sous peine d'erreur

    je le sens bien comme ça

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    Lol il prend diffente valeur je vais donner un exemple :

    0,621119629806707

    C'est si surprenant que ça ??

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    Voici le message derreur je l'ai mis en piece jointe
    Images attachées Images attachées  

  14. #14
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut
    Bonjour,


    As-tu essayé avec un "."(point) comme séparateur décimal plutôt qu'une ","(virgule) ???

    Cordialement

  15. #15
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    phonex est en numerique
    Moi je propose sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim MeVariable As String
    MeVariable = CStr(c)
    'exemple pour c= 0,621119629806707 et que le champ phonex attend un . (point) et non une virgule
    MeVariable = Replace(MeVariable, ",", ".")
    'exemple pour c= 0.621119629806707 et que le champ phonex attend une , (virgule) et non un point
    MeVariable = Replace(MeVariable, ".", ",")
     
    rst.Open "SELECT Nom, Phonex FROM Ville WHERE Phonex =  " & CStr(MeVariable), cnx
    Pourquoi Cstr(), l'evaluation du string va se faire automatiquement et dans le bon type
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    Non c'est toujours la meme erreur !!!

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

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Soit tu changes le type de champ de Phonex dans ta base en string, (auquel cas il faudra des ' ' dans le SQL),
    Soit tu te débrouilles pour que le champ puisse être évalué comme un nombre, donc avec un . comme séparateur et non pas une ,

    Cdbl(Replace(Cstr(c), ",", ".") devrait faire l'affaire

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/08/2006, 17h10
  2. Types de données incompatibles lors d'une requête sous access
    Par RodEpsi dans le forum Bases de données
    Réponses: 32
    Dernier message: 21/07/2006, 15h51
  3. Réponses: 2
    Dernier message: 13/06/2006, 08h47
  4. Réponses: 3
    Dernier message: 22/05/2006, 19h23
  5. (Access) Type de données incompatible...
    Par kissmytoe dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/02/2006, 20h37

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