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

Requêtes et SQL. Discussion :

Type de donnée incompatible dans l'expression du critère non lié a une date


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Type de donnée incompatible dans l'expression du critère non lié a une date
    Salut !

    j'ai une requête qui me pose problème :

    rqt1 = ("SELECT STKCOLL.* from STKCOLL where STKCOLL.Nlct = """ & N_LCT & """ and STKCOLL.NLieuStkColl = """ & Temp_Num & """;")
    Apres quelque test j'ai remarqué que c'est après mon AND qu'il y a un soucis.

    STKCOLL.NLieuStkColl est de type numéro automatique et visiblement il n'aime pas être comparé a un numérique :s

    Connaissez vous une fonction qui convers un numérique en numéro auto ? j'ai eu bo fouillez le forum et google j'ai rien trouvé a ce sujet ...

    Merci pour le coup de pouce

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Ce qui est bizarre c'est que si je met une valeur numerique :

    rqt1 = ("SELECT STKCOLL.* from STKCOLL where STKCOLL.Nlct = """ & N_LCT & """ and STKCOLL.NLieuStkColl =191;")
    là sa marche et pourtant Temp_Num est affecté d'une requete qui donne bien la valeur 191 j'ai vérifier avec des msgbox

    Pour que vous compreniez bien le schéma :

    rqt0 = ("SELECT LIEUXSTKCOLL.NLieuStkColl FROM LIEUXSTKCOLL WHERE LIEUXSTKCOLL.LieuStkColl = """ & Emplacement & """;")
    Emplacement est la valeur d'un textbox celui ci me permet de trouvé le numéro de lieux de stockage

    Set rs0 = db.OpenRecordset(rqt0)
    Temp_Num = rs0("NLieuStkColl")
    donc la on insere la valeur de la requete qui est en numero auto
    rqt2 = ("SELECT STKCOLL.Nlct, STKCOLL.NLieuStkColl FROM STKCOLL where STKCOLL.Nlct = """ & N_LCT.Value & """ and STKCOLL.NLieuStkColl = """ & Temp_Num & """;")
    J'ai rater un truc ? sa ne marche tjrs psa

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Je pense qu'il faut déclarer la variable Temp_Num d'une certaine façon j'ai essayer de la déclarer en long, variant, integer, string rien ne marche :s

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 26
    Points : 38
    Points
    38
    Par défaut
    Salut,

    Essaie en n'encadrant pas tes variables de type numérique de guillemets dans ton instruction SQL ,comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rqt1 = ("SELECT STKCOLL.* from STKCOLL where STKCOLL.Nlct = " & N_LCT & " and STKCOLL.NLieuStkColl = " & Temp_Num & ";")
    D'ailleurs tu l'a bien montré dans ton exemple. Tu as fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rqt1 = ("SELECT STKCOLL.* from STKCOLL where STKCOLL.Nlct = """ & N_LCT & """ and STKCOLL.NLieuStkColl =191;")
    et pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rqt1 = ("SELECT STKCOLL.* from STKCOLL where STKCOLL.Nlct = """ & N_LCT & """ and STKCOLL.NLieuStkColl ="191";")

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Incroyable sa marche ! mais que pour les données numériques pour les autres cela fait planter la requête !

    Merci bien !

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 26
    Points : 38
    Points
    38
    Par défaut
    Re,

    Pour des champs de type texte, il faut laisser les guillemets et utiliser plutôt l'opérateur 'LIKE' que '='

    ...STKCOLL.ChampTexte Like """ & variableTexte & """...

    et pour un champ de type numérique, il faut utiliser '=' et ne pas mettre de guillemets

    ...STKCOLL.ChampNumerique =" & variableNumérique & " ...

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

Discussions similaires

  1. Requête: type de donnée incompatible dans l'expression du critère
    Par abambad dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/10/2007, 15h48
  2. Réponses: 5
    Dernier message: 31/08/2007, 13h01
  3. Réponses: 8
    Dernier message: 20/06/2007, 14h38
  4. Réponses: 7
    Dernier message: 22/08/2006, 17h10
  5. Réponses: 3
    Dernier message: 22/05/2006, 19h23

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