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

Access Discussion :

Not In(Select ..


Sujet :

Access

  1. #1
    Invité
    Invité(e)
    Par défaut Not In(Select ..


    Il me semblait que l'on pouvait mettre dan une requête un critère du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Not In (SELECT NumFac FROM TblFact)
    Est-je révé !? En tout cas ça ne fonctionne pas !

    En fait dans une table "TblFact" j'aurais voulu importer des factures qui n'éxiste pas dans cette table ?

    Suis-je obligé de passé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LEFT JOIN [Tbl Fact] ON [TblX ChronosTmp].NumFac = [Tbl Fact].NumFact WHERE [Tbl Fact].NumFact Is Null;"
    Ce qui est beaucoup plus long en écriture

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Salut,

    Oui tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE  [TblX ChronosTmp].NumFac Not In (SELECT NumFac FROM TblFact)
    @+

  3. #3
    Invité
    Invité(e)
    Par défaut Et bien ....
    Salut User,

    Je savais bien que je n'avais pas révé !

    Mais chez moi avec la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Cpte], [Aff], [NumFac], [Commune], [Travaux], [DateFac], [MtFacHT], [MtFacTTC], [Expr1], [Expr2], [Expr3]
    FROM [TblX ChronosTmp]
    WHERE [NumFac] Not In (SELECT NumFact FROM [Tbl Factures]);
    Ca marche po, le select ne me renvoie rine du tout !
    Alors que j'ai bien vérifier :
    1) dans ma table "Tbl Factures" je n'ai pas les facture de Juillet
    2) dans ma table "Tblx ChronosTmp" je les ai bien

    Je ne comprends po

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Il y a bien un NumFac et un NumFact?

    pgz

  5. #5
    Invité
    Invité(e)
    Par défaut
    PgZ

    Il y a bien un NumFac et un NumFact?


    Dans ma table des chronos temporaire (TblX ChronosTmp) créée via un fichier Excel lié, il y a "NumFac"

    Dans ma table des factures (Tbl Factures) il y a NumFact

    Je ne voulais pas mettre le même champ pour ne pas avoir de pb

    Nota : NumFact est un champ texte, est-ce que cela change quelque chose !?

    A+

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Hello,

    et avec le Left Join, ca marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LEFT JOIN [Tbl Fact] ON [TblX ChronosTmp].NumFac = [Tbl Fact].NumFact WHERE [Tbl Fact].NumFact Is Null;"


    Peux-tu confirmer ?

    @+

  7. #7
    Invité
    Invité(e)
    Par défaut Oui je confirme...
    Salut USER,

    Oui je confirme avec le LEFT JOIN, ça fonctionne !
    Donc c'est la solution que j'ai adopté pour le moment, mais je ne comprend pas pourquoi l'autre ne fonctionne pas !?

    Si personne n'a d'idée je vais mettre résolu

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Je te confirm que le Not In (Select ..
    avec un champ text fonctionne bien..

    La je ne vois vraiment pas

    A toi de voir pour le tag résolu...

    @+

  9. #9
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Re,

    Moi je pense que tu as une solution, mais la question que tu as posée n'est pas résolue pour autant. Et c'est assez perturbant...
    Serait-ce trop te demander que de montrer les 2 tables, pour faire cette requête de non concordance?

    Cordialement,

    pgz

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Bonjour,

    A mon avis, il faut au moins un enregistrement dans la table <TblFact> pour que ça fonctionne avec l'opérateur In.

    Philippe

    Correction : Je viens de tester la requête suivante avec une table factures vierge et ça fonctionne sous Access 2003. C'est pas ça donc !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT [TblX ChronosTmp].Cpte, [TblX ChronosTmp].aff
    FROM [TblX ChronosTmp]
    WHERE ((([TblX ChronosTmp].NumFac) Not In (select numfact from [tbl factures])));

  11. #11
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour

    Cette erreur est souvent due à la présence de NULL dans le champ retourné par la sous requête.

    http://access.developpez.com/faq/?page=Concept#ReqOpIn

  12. #12
    Invité
    Invité(e)
    Par défaut Bravo...


    Merci à toi au grand maitre Tofalu

    Le problème était bien là ..... Il trainait des valeurs null

    Merci à tous pour votre aide

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

Discussions similaires

  1. NOT IN (SELECT) sous MySQL
    Par tinou66644 dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/06/2011, 12h05
  2. where V1, V2 not in (select V1, V2 /édité/
    Par raphdn dans le forum Développement
    Réponses: 7
    Dernier message: 29/05/2009, 11h02
  3. Réponses: 18
    Dernier message: 05/12/2008, 10h45
  4. [SQL]: Requête NOT IN SELECT(...)
    Par CAPPE dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/06/2005, 14h06
  5. a,b,c NOT IN (select a,b,c from table)
    Par szdavid dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2005, 09h19

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