[Access] Problème de requete.

Résolu
Oz` Messages postés 31 Statut Membre -  
Oz` Messages postés 31 Statut Membre -
Bonjour,

Je suis en train de dévellopper une application en Intranet (ASP, VbScript) et j'ai un petit soucis de requetes avec access.

J'ai une table AGENT qui contient AGT_ID(Primaire, auto increment) AGT_NOM et AGT_PRENOM
J'ai ensuite une table INSCRIPTION contenant INSC_ID(auto increment) OPERATION_ID(en rapport a une autre table) et AGENT_ID(clé etrangere d'AGT_ID).

-Il peut y avoir plusieurs agents inscrit sur la même opération.
-Il ne peuvent s'inscrire qu'une seul fois à la même opération.

J'aimerais recuperé la liste des agents non-inscrit à une operation par son id.

J'ai essayer avec plusieurs methodes mais rien n'y fait:
SELECT AGENT.AGT_ID, AGENT.AGT_PRENOM, AGENT.AGT_NOM
FROM AGENT, INSCRIPTION
WHERE AGENT_ID Not Like (SELECT AGENT_ID FROM INSCRIPTION WHERE OPERATION_ID LIKE 29); //Aucun resultat...

SELECT AGENT.AGT_ID, AGENT.AGT_PRENOM, AGENT.AGT_NOM
FROM AGENT, INSCRIPTION
WHERE AGENT_ID NOT LIKE AGENT_ID AND OPERATION_ID = 29); //doublons.

Je ne sais pas si SQL sous access differe de mysql, mais j'ai l 'impression que la premiere devrait marché non?

Merci d'avance.
A+
--
Oz`
Configuration: Windows 2000
Firefox 2.0.0.6

2 réponses

  1. blux Messages postés 2058 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    tu as essayé NOT IN et non NOT LIKE ?

    Sinon, il faut tenter les jointures LEFT JOIN et RIGHT JOIN (requête de non correspondance dans ACCESS), genre :
    FROM B LEFT JOIN A ON B.IdB = A.Id
    WHERE (((A.Id) Is Null));
    --
    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    -1
  2. Oz` Messages postés 31 Statut Membre 4
     
    Re,

    Suite à ton conseil je viens de tester :

    SELECT AGT_ID, AGT_NOM, AGT_PRENOM
    FROM AGENT, INSCRIPTION
    WHERE AGT_ID NOT IN (SELECT AGENT_ID FROM INSCRIPTION WHERE OPERATION_ID LIKE 29)

    Ca m'as tout l air de fonctionner seulement j'ai des doublons, je rajoute donc DISTINCT AGT_ID au début.

    Merci beaucoup ;)

    @ plush
    -1