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 :

Critère de sélection sur valeur convertie [AC-2002]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 31
    Points
    31
    Par défaut Critère de sélection sur valeur convertie
    Bonjour,

    J'ai un champ de type texte qui contient des chiffres. J'ai converti le tout en nombre à l'aide d'une requête qui utilise la fonction CLng(chiffre). Requête que j'ai enregistré.

    Je peux ensuite appeler cette requête et trié le tout comme nombre mais Access ne me permet pas d'inscrire de critères de sélection comme >1500 par exemple. Il me donne comme message d'erreur "Type de données incompatible avec l'expression du critère".

    Comment puis-je résoudre ce problème

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pourrais-tu mettre la requête sur le forum, ce serait plus facile pour la compréhension de tous.

    Philippe

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 122
    Points : 172
    Points
    172
    Par défaut
    Salutations,

    As-tu essayé simplement un > CLng(1500) ?
    Comme dans ta requête, tu force la conversion il est possible qu'il te soit nécessaire de la forcer également dans la condition.

    Cordialement,
    "Je suis capable du meilleur comme du pire, mais dans le pire, c'est moi le meilleur" Coluche.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 31
    Points
    31
    Par défaut Voici les requêtes
    Voici les requêtes:

    La première requête "rqtProjetNum", convertie le "LienProjet" qui est du texte en entier long et fonctionne bien.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CLng([LienProjet]) AS ProjetNum
    FROM Contrat
    WHERE ((Not (Contrat.LienProjet) Is Null And (Contrat.LienProjet)<>""))
    ORDER BY CLng([LienProjet]) DESC;
    La seconde requête, basée sur la première ne fonctionne pas.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT rqtProjetNum.ProjetNum
    FROM rqtProjetNum
    WHERE rqtProjetNum.ProjetNum>1985;

  5. #5
    Invité
    Invité(e)
    Par défaut
    bonjour,

    et comme ceci en une seule requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT LienProjet AS ProjetNumFROM Contrat
    WHERE CLng("0"&[LienProjet]) > 1985
    ORDER BY CLng([LienProjet]) DESC;
    Il faut seulement que la clause Where ne soit jamais écrite ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    CLng("0"&[LienProjet]) >= 0 
    ...
    sinon ça plante !

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 31
    Points
    31
    Par défaut Merci
    Merci beau,

    Cela fonctionne bien. Mais lorsque que j'ai essayé avec < au lieu de > cela a planté de nouveau parce que j'avais des valeur Null ou égales à "". J'ai donc modifié le code ainsi:

    SELECT Contrat.LienProjet AS ProjetNum
    FROM Contrat
    WHERE (((Contrat.LienProjet)<>"" And Not (Contrat.LienProjet) Is Null) AND ((CLng("0" & [LienProjet]))<1985))
    ORDER BY CLng([LienProjet]) DESC;

    A+

  7. #7
    Invité
    Invité(e)
    Par défaut
    La requete universelle dans ce cas est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT LienProjet AS ProjetNum 
    FROM Contrat
    WHERE CLng("0"&[LienProjet]) > 1985
    ORDER BY CLng("0"&[LienProjet]) DESC;
    elle fonctionne aussi bien avec < que >, etc...

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

Discussions similaires

  1. critère de sélection sur une seule colonne
    Par ivan54 dans le forum Requêtes
    Réponses: 22
    Dernier message: 13/01/2009, 19h44
  2. Critères de requêtes basées sur valeur de liste d'un formuliare
    Par 7guizz9 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/01/2008, 10h57
  3. Sélection sur un critère avec séparateur.
    Par $p00ky dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/12/2007, 17h36
  4. Réponses: 5
    Dernier message: 06/07/2006, 11h40
  5. Sélection sur deux critères
    Par Hbenne dans le forum Access
    Réponses: 2
    Dernier message: 07/04/2006, 16h18

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