Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2010, 15h18   #1
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 197
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 197
Points : 26
Points : 26
Par défaut Problème récupération champs

Bonjour,

Sous ACCESS, j'ai 2 tables que l'on peut appeller A et B
J'ai créé une requete liant ces deux tables comme suit:
Code :
1
2
3
4
5
 
 
SELECT A.a, A.b, A.c
FROM A
WHERE (((A.a) In (SELECT  B.a FROM B )));
Les champs "a" de chaque table sont de meme type. Ma jointure se fait correctement.
Par contre j'aimerai récupérer également les champs "b" et "c" de la table B.
Comment puis-je m'y prendre pour récupérer ces infos??

Merci d'avance.
Spanish_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 15h27   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Spanish_,

Requête R1, via l'assistant :
Code sql :
SELECT a,b,c FROM B
Requête R2, via l'assistant :
Table A liée à R1, via a, avec sélection des champs a,b,c de A et a,b,c de B.

Ensuite, après test de l'assistant, tu peux récupérer le code SQL généré (affichage en mode SQL).
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 15h51   #3
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 197
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 197
Points : 26
Points : 26
Merci pour ta réponse.

J'ai donc créer ma REQ1 contenant les champs de B.
(Ce qui revient d'ailleur à utiliser directement la table B)

J'ai tenter de lier avec l'assistant, ma table A à ma table B, ça m'est refuser car en réalité j'ai oublié de préciser que ma table A en fait une requete. Et l'assistant ne veut pas.

Je suis obligé de passer par une sous requete IN car si je fais juste la jointure entre A.a et B.a, il ne me trouve aucun résultat.Tandis qu'avec le In , il m'en trouve. Bizarre

Mais il doit bien avoir une solution pour afficher tous les champs de ma table B avec ma requete initiale non?
Spanish_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 16h10   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Citation:
J'ai donc créer ma REQ1 contenant les champs de B.
(Ce qui revient d'ailleur à utiliser directement la table B)
C'est vrai, mais cela permet de mettre des WHERE, par la suite, si besoin.


Dans l'assistant tu peux, parfaitement, lier ta requête A à ta requête REQ1, donc :

Requête R2, via l'assistant :
Requête A liée à REQ1, via a, avec sélection des champs a,b,c de A et a,b,c de REQ1.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 16h24   #5
Membre confirmé
 
Homme
Développeur amateur
Inscription : mars 2009
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur amateur

Informations forums :
Inscription : mars 2009
Messages : 176
Points : 255
Points : 255
Bonjour,

Spanish, ta requete
Code :
1
2
3
4
 
SELECT A.a, A.b, A.c
FROM A
WHERE (((A.a) In (SELECT  B.a FROM B )));
est une requete avec sous requete imbriquée. Elle est à mon sens tout à fait equivalente à une requete avec jointure entre A.a et B.a

Code :
1
2
3
4
 
 
SELECT A.a, A.b, A.c, B.a, B.b, B.c
FROM A INNER JOIN B ON A.a=B.a;
Avec la requete avec jointure , tu peux afficher les champs que tu veux
reedy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 18h50   #6
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 197
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 197
Points : 26
Points : 26
Reddafry,

J'ai trouvé la solution.

Pour rappel ma table A est en faite une requete qui contient le champ "a".
Je l'ai jointe avec ma table B par le champ "a".
Cela ne me renvoit aucune donnée.

Par contre si je renseigne le champ "a" (exemple : 9999) de ma requete (donc table A) au préalable, là ma jointure fonctionne il me le trouve a la fois dans mes tables A et B.

J'ai donc, insérer ma sous requete IN .... directement dans la requete initiale qui contenait le champ "a", et du coup après ma joiture entre ma table B et ma table A (qui est une requete) fonctionne et je peux afficher tous les items de B et de A.

Je sais pas si j'ai été clair lol.

En tout cas merci pour votre aide.

Bonne soirée à vous.
Spanish_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h49.


 
 
 
 
Partenaires

Hébergement Web