VBA : Pb de requete entre 2 tables.

Résolu
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 - 24 juin 2005 à 15:35
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 24 juin 2005 à 16:54
Bonjour,
J'ai un petit problème de requete sousVBA.
J'ai 2 tables : echantillon et pollens
echantillon possede entre autre une clé primaire : N° éch
et un champ: site
pollens possède entre autre un champ : numech
Les 2 tables sont liées par N° éch <-> numech.
Je souhaiterai avoir en sortie tous les champs de la table pollens pour lesquels les numeros correspondent avec ceux de la table echantillon et dont le nom de site a été choisi par l'utilisateur.
Ma requete :

SELECT * FROM pollens
INNER JOIN echantillon
ON pollens.numech=echantillon.[N° éch]
WHERE (echantillon.[Site]= '" & sit & "'))

Le problème c'est que cette requete ne filtre rien du tout et me renvoie tous les éléments de ma table pollens......
J'ai beau tourner le problème dans tous les sens je ne vois pas ou est mon erreur.

Merci.

6 réponses

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
24 juin 2005 à 16:54
T'as rien compris

Prends la requête que j'ai faite elle marche!

Je viens de la tester en live en recréant tes tables.

Tu n'as qu'à faire un copier coller...
SELECT echantillon.site, *
FROM pollens LEFT JOIN echantillon ON pollens.NumEch = echantillon.N°ech
WHERE (((echantillon.site)='" & sit & "'));"
TBBUIM
3
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
24 juin 2005 à 15:47
en fait tu ve tous les pollens qui sont dans échantillon?
0
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 7
24 juin 2005 à 16:02
Pour répondre à ta question mes pollens ne sont pas dans ma table échantillons mais dans une table pollens. Ces 2 tables étant reliées entre elles par le numero d'echantillon.

Je vais essayer de réexpliquer :
en fait je demande à l'utilisateur de choisir un nom de site (ma variable sit). A partir de la je veux choisir tous mes enregistrements de ma table echantillon tels que le nom de site correspond avec le choix de l'utilisateur.
Ensuite, ces enregistements étant reliés à des pollens dans ma table pollens par le numero d'echantillon, je voudrais avoir en sorti tous les pollens ayant ces même numeros d'échantillon
Je sais pas si j'ai été vraiment plus clair là !
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
24 juin 2005 à 16:21
Il semble y avoir une parenthèse en trop dans ta requête

Et en faisant un INNER join tu joins tous les champs de la table

Tandis qu'en faisant un left join, tu inclus tous les enregistrements
de la table pollens et seulement ceux de la table échantillons pour
lesquels les champs joints sont égaux (choix 2 sous access) Crée ta
requête avec l'assitant et choisi la propriété de jointure N°2

Essayes ça:

SELECT echantillon.site, *

FROM pollens LEFT JOIN echantillon ON pollens.NumEch = echantillon.N°ech

WHERE (((echantillon.site)='" & sit & "'));"
TBBUIM
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
omsylv Messages postés 69 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 15 septembre 2005
24 juin 2005 à 16:21
Salut,



D'après moi c'est normal que ça ne marche pas. Il faut que tu fasses
une première requête qui te trouve les numéro d'échantillons
correspondant au site (que la table échantillons)

et pour chaque résultat (pour chaque ligne de ton recordset) il faut que tu fasses une requête du type


Select * from pollen where numech = " &
rligne du recordset & ";"
0
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
24 juin 2005 à 16:31
tu fais:

select NomPollen
from Pollen,Echantillon
where Pollen.NumEch=echantillon.N°ech
and Site= (valeur entrez par l'utilisateur)

ainsi tu auras tous les pollens pour le site entré

ais-je bien compris?
0
Rejoignez-nous