OVH Cloud OVH Cloud

Requête : 2 X la même table ....

4 réponses
Avatar
Rodrigue
Salut à tous

Je possède 2 tables 'ECOLES' et 'IMPLANTATIONS' liées par une relation 1
à N.
Ces 2 tables sont liées chacune à une table 'CP' (Codes postaux et
localités)

Dans un requête, je demande le nom et l'adresse complète de certaines
écoles, mais aussi le nom et l'adresse complète des implantations qui
dépendent de ces écoles.
Dans la grille de requête, la table 'CP' apparaît donc 2X. CP étant liée à
IMPLANTATIONS et CP_1 étant liée à ECOLES.

La requête fonctionne sans problème !!!
Mais pq fais-je donc appel à vous ????

L'état basé sur la requête, le malotru, ne fonctionne pas et me répond :
le champ spécifié 'CP_CPLocalité' peut désigner plusieurs tables listées
dans la clause FROM de votre instruction SQL.

Si qq'un a une idée .... elle est la bienvenue et même un peu plus !!
Le code SQL incriminé se trouve sous la signature

Merci d'avance
Le béotien de service ROD
--------------------------------------
SELECT Tbl_PO.PO_Nom, Tbl_PO.PO_CP, Tbl_PO.PO_Province,
Tbl_IMPLANTATIONS_CECP.IMPLANT_ECOLE_Pointeur, Tbl_ECOLES_CECP.ECOLE_Nom1,
Tbl_ECOLES_CECP.ECOLE_Adresse, CP_1.CP_CPLocalité,
Tbl_ECOLES_CECP.ECOLE_FASE, Tbl_ECOLES_CECP.ECOLE_Page,
Tbl_ECOLES_CECP.ECOLE_Matricule, Tbl_ECOLES_CECP.ECOLE_DIR,
Tbl_ECOLES_CECP.[ECOLE_DIR_DAC?], Tbl_ECOLES_CECP.ECOLE_DIR_Tél,
Tbl_ECOLES_CECP.ECOLE_DIR_Gsm, Tbl_ECOLES_CECP.ECOLE_DIR_Email,
Tbl_IMPLANTATIONS_CECP.IMPLANT_N°ORDRE, Tbl_IMPLANTATIONS_CECP.IMPLANT_FASE,
Tbl_IMPLANTATIONS_CECP.IMPLANT_Nom, Tbl_IMPLANTATIONS_CECP.IMPLANT_Adresse,
Tbl_CP.CP_CPLocalité, Tbl_CP.CP_Localité, Tbl_IMPLANTATIONS_CECP.IMPLANT_Tél

FROM (((Tbl_IMPLANTATIONS_CECP INNER JOIN Tbl_CP ON
Tbl_IMPLANTATIONS_CECP.IMPLANT_CP_Pointeur = Tbl_CP.CP_ID) INNER JOIN
Tbl_ECOLES_CECP ON Tbl_IMPLANTATIONS_CECP.IMPLANT_ECOLE_Pointeur =
Tbl_ECOLES_CECP.ECOLE_FASE) INNER JOIN Tbl_CP AS CP_1 ON
Tbl_ECOLES_CECP.ECOLE_CP_Pointeur = CP_1.CP_ID) INNER JOIN Tbl_PO ON
Tbl_ECOLES_CECP.ECOLE_PO_Pointeur = Tbl_PO.PO_ID

WHERE (((Tbl_PO.PO_Nom) Like "*" & [PO Commune de :] & "*") AND
((Tbl_PO.PO_Province) Like "*" & [Province (Bt - Bxl - Ht -Lg - Lx - Nr) :]
& "*"))
ORDER BY Tbl_PO.PO_Nom, Tbl_PO.PO_Province,
Tbl_IMPLANTATIONS_CECP.IMPLANT_ECOLE_Pointeur,
Tbl_IMPLANTATIONS_CECP.IMPLANT_N°ORDRE;

4 réponses

Avatar
Benjamin
Salut,

J'ai déjà eu ce type de problème moi aussi et je crois
pouvoir t'aider.

Ouvre la fenêtre de propriétés de ton état et regarde s'il
n'y aurait pas le mot 'CP_CPLocalité' quelque part comme
par exemple dans la propriété 'Filtre' ou dans 'Tri par'

Si oui, alors voilà le problème, tu n'a qu'à écrire
<LeNomDeLaBonneTable>.CP_CPLocalité comme par exemple
ECOLES.CP_CPLocalité

Si ce n'est pas ça, alors c'est surement dans la
proporiété 'Source' ; Si tu a mis le nom d'une requête,
ce n'Est pas ça, mais si tu as mis par exemple un SELECT *
FROM ..., alors assure-toi que le mot 'CP_CPLocalité' est
bien précédé du bon nom de table.

J'espère que j'ai pu t'aider!
Avatar
Rodrigue
Merci Benjamin pour ton aide,

Malheureusement, rien dans les propriétés Tri ou Filtre.
La source est bien le nom de la requête, dont le code SQL est décrit dans ma
question de départ... et je n'y ai toujours pas trouvé le 'Bug'.
Merci d'avoir essayé, je continue à chercher ...
ROD


"Benjamin" a écrit dans le message news:
54df01c37c82$91540060$
Salut,

J'ai déjà eu ce type de problème moi aussi et je crois
pouvoir t'aider.

Ouvre la fenêtre de propriétés de ton état et regarde s'il
n'y aurait pas le mot 'CP_CPLocalité' quelque part comme
par exemple dans la propriété 'Filtre' ou dans 'Tri par'

Si oui, alors voilà le problème, tu n'a qu'à écrire
<LeNomDeLaBonneTable>.CP_CPLocalité comme par exemple
ECOLES.CP_CPLocalité

Si ce n'est pas ça, alors c'est surement dans la
proporiété 'Source' ; Si tu a mis le nom d'une requête,
ce n'Est pas ça, mais si tu as mis par exemple un SELECT *
FROM ..., alors assure-toi que le mot 'CP_CPLocalité' est
bien précédé du bon nom de table.

J'espère que j'ai pu t'aider!
Avatar
luc archamabult
A mon avis avisn, il faut simplement différencier les noms
de champs homonymes dans la requete (CP_CPLocalité):
cad mettre par exemple "CP_Ecole" et "CP_Implantation"
devant les noms des champs (suivi de :) -> l'état devrait
ensuite pouvoir faire la distinction.
-----Message d'origine-----
Merci Benjamin pour ton aide,

Malheureusement, rien dans les propriétés Tri ou Filtre.
La source est bien le nom de la requête, dont le code SQL
est décrit dans ma

question de départ... et je n'y ai toujours pas trouvé
le 'Bug'.

Merci d'avoir essayé, je continue à chercher ...
ROD


"Benjamin" a écrit dans le message
news:

54df01c37c82$91540060$
Salut,

J'ai déjà eu ce type de problème moi aussi et je crois
pouvoir t'aider.

Ouvre la fenêtre de propriétés de ton état et regarde s'il
n'y aurait pas le mot 'CP_CPLocalité' quelque part comme
par exemple dans la propriété 'Filtre' ou dans 'Tri par'

Si oui, alors voilà le problème, tu n'a qu'à écrire
<LeNomDeLaBonneTable>.CP_CPLocalité comme par exemple
ECOLES.CP_CPLocalité

Si ce n'est pas ça, alors c'est surement dans la
proporiété 'Source' ; Si tu a mis le nom d'une requête,
ce n'Est pas ça, mais si tu as mis par exemple un SELECT *
FROM ..., alors assure-toi que le mot 'CP_CPLocalité' est
bien précédé du bon nom de table.

J'espère que j'ai pu t'aider!


.



Avatar
Rodrigue
Bon sang !! mais c'est bien sûr ....
Tellement évident ...

Merci bcp Luc pour ton aide
(encore du travail moi ...)
ROD


"luc archamabult" a écrit dans le message
news: 036701c37cfb$bca5bdc0$
A mon avis avisn, il faut simplement différencier les noms
de champs homonymes dans la requete (CP_CPLocalité):
cad mettre par exemple "CP_Ecole" et "CP_Implantation"
devant les noms des champs (suivi de :) -> l'état devrait
ensuite pouvoir faire la distinction.
-----Message d'origine-----
Merci Benjamin pour ton aide,

Malheureusement, rien dans les propriétés Tri ou Filtre.
La source est bien le nom de la requête, dont le code SQL
est décrit dans ma

question de départ... et je n'y ai toujours pas trouvé
le 'Bug'.

Merci d'avoir essayé, je continue à chercher ...
ROD


"Benjamin" a écrit dans le message
news:

54df01c37c82$91540060$
Salut,

J'ai déjà eu ce type de problème moi aussi et je crois
pouvoir t'aider.

Ouvre la fenêtre de propriétés de ton état et regarde s'il
n'y aurait pas le mot 'CP_CPLocalité' quelque part comme
par exemple dans la propriété 'Filtre' ou dans 'Tri par'

Si oui, alors voilà le problème, tu n'a qu'à écrire
<LeNomDeLaBonneTable>.CP_CPLocalité comme par exemple
ECOLES.CP_CPLocalité

Si ce n'est pas ça, alors c'est surement dans la
proporiété 'Source' ; Si tu a mis le nom d'une requête,
ce n'Est pas ça, mais si tu as mis par exemple un SELECT *
FROM ..., alors assure-toi que le mot 'CP_CPLocalité' est
bien précédé du bon nom de table.

J'espère que j'ai pu t'aider!


.