OVH Cloud OVH Cloud

Expression de jointure non supportée

1 réponse
Avatar
Gilbert
Bonjour,

J'utilise la requête enregistrée dont le texte est ci-dessous depuis un
module VBA : tout va bien, je récupère l'info voulue.
J'exécute directement cette requête : idem
Je l'enregistre sous un autre nom et l'exécute : idem
Par contre si je copie le code SQL dans une nouvelle requête et l'exécute,
j'obtiens le message "Expression de jointure non supportée"
Si je fais la moindre modification en mode SQL sur la requête (même
simplement ajouter un espace) : même message

Quelqu'un a-t'il une idée sur le pourquoi du comment cela se fait-il?

Merci d'avance

Gilbert

SELECT [Tbl Identité].Genre, [Tbl Identité].Nom, [Tbl Identité].Prénom, [Tbl
Identité].Adresse, [Tbl Identité].Adresse1, [Tbl Identité].CodePostal, [Tbl
Ville].Nomville, [Tbl Utilisateurs].NomContact, [Tbl
Utilisateurs].PrénomContact, [Tbl Contact].Datecontact, [Tbl Mode de
contact].Modecontact, [Tbl Contact].Duréecontact, [Tbl Nature
demande].Naturedemande, [Tbl Contact].Proposition1, [Tbl
Contact].Proposition2, [Tbl Contact].Proposition3, [Tbl
Contact].Prochaincontact, [Tbl Contact].DateRappel, [Tbl
Contact].Commentaire, Tbl_Prestations.Prestation, Coordonnées.Nom_Structure,
[Coordonnées].[Adresse1] & ' ' & [Coordonnées].[Adresse2] AS
AdresseStructure, Coordonnées.Code_Postal AS CPStructure, [Tbl
Ville_1].Nomville AS VilleStructure,
Format([Téléphone],"@@\.@@\.@@\.@@\.@@") AS TelStructure,
Format([Coordonnées].[Fax],"@@\.@@\.@@\.@@\.@@") AS FaxStructure,
Coordonnées.Email AS EmailStructure
FROM [Tbl Ville] AS [Tbl Ville_1] INNER JOIN Coordonnées ON [Tbl
Ville_1].Numville = Coordonnées.Numville, [Tbl Nature demande] INNER JOIN
([Tbl Mode de contact] INNER JOIN (([Tbl Ville] INNER JOIN [Tbl Identité] ON
[Tbl Ville].Numville = [Tbl Identité].Numville) INNER JOIN (Tbl_Prestations
RIGHT JOIN (Tbl_InfosFinancement RIGHT JOIN ([Tbl Contact] INNER JOIN [Tbl
Utilisateurs] ON [Tbl Contact].CodeUtilisateur = [Tbl
Utilisateurs].CodeUtilisateur) ON Tbl_InfosFinancement.Numligne = [Tbl
Contact].PrestationContact) ON Tbl_Prestations.RefPrestation =
Tbl_InfosFinancement.Prestation) ON [Tbl Identité].Numidentite = [Tbl
Contact].Numidentite) ON [Tbl Mode de contact].Nummodecontact = [Tbl
Contact].Nummodecontact) ON [Tbl Nature demande].Numnaturedemande = [Tbl
Contact].Numnaturedemande
WHERE ((([Tbl Identité].Numidentite)=ValeurControle("[Formulaires]![Frm
Fiche d'accueil]![Numidentite]")) AND (([Tbl
Contact].Numcontact)=ValeurControle("[Formulaires]![Frm Fiche
d'accueil]![Sous-formulaire Contacts].[Form]![Numcontact]")));

1 réponse

Avatar
Gilbert
Pour info, le problème semble résolu de la façon suivante:

Une première requête qui sélectionne tous les enregistrements des tables
jointes par des RIGHT JOIN

SELECT [Tbl Contact].*, Tbl_InfosFinancement.*, Tbl_Prestations.*
FROM Tbl_Prestations RIGHT JOIN (Tbl_InfosFinancement RIGHT JOIN [Tbl
Contact] ON Tbl_InfosFinancement.Numligne = [Tbl Contact].PrestationContact)
ON Tbl_Prestations.RefPrestation = Tbl_InfosFinancement.Prestation;

Une deuxième requête qui utilise la requête ci-dessus à la place des 3
tables concernées, et qui reprend tous les champs du début.

Gilbert



"Gilbert" a écrit dans le message de
news:%
Bonjour,

J'utilise la requête enregistrée dont le texte est ci-dessous depuis un
module VBA : tout va bien, je récupère l'info voulue.
J'exécute directement cette requête : idem
Je l'enregistre sous un autre nom et l'exécute : idem
Par contre si je copie le code SQL dans une nouvelle requête et l'exécute,
j'obtiens le message "Expression de jointure non supportée"
Si je fais la moindre modification en mode SQL sur la requête (même
simplement ajouter un espace) : même message

Quelqu'un a-t'il une idée sur le pourquoi du comment cela se fait-il?

Merci d'avance

Gilbert

SELECT [Tbl Identité].Genre, [Tbl Identité].Nom, [Tbl Identité].Prénom,
[Tbl

Identité].Adresse, [Tbl Identité].Adresse1, [Tbl Identité].CodePostal,
[Tbl

Ville].Nomville, [Tbl Utilisateurs].NomContact, [Tbl
Utilisateurs].PrénomContact, [Tbl Contact].Datecontact, [Tbl Mode de
contact].Modecontact, [Tbl Contact].Duréecontact, [Tbl Nature
demande].Naturedemande, [Tbl Contact].Proposition1, [Tbl
Contact].Proposition2, [Tbl Contact].Proposition3, [Tbl
Contact].Prochaincontact, [Tbl Contact].DateRappel, [Tbl
Contact].Commentaire, Tbl_Prestations.Prestation,
Coordonnées.Nom_Structure,

[Coordonnées].[Adresse1] & ' ' & [Coordonnées].[Adresse2] AS
AdresseStructure, Coordonnées.Code_Postal AS CPStructure, [Tbl
Ville_1].Nomville AS VilleStructure,
Format([Téléphone],"@@.@@.@@.@@.@@") AS TelStructure,
Format([Coordonnées].[Fax],"@@.@@.@@.@@.@@") AS FaxStructure,
Coordonnées.Email AS EmailStructure
FROM [Tbl Ville] AS [Tbl Ville_1] INNER JOIN Coordonnées ON [Tbl
Ville_1].Numville = Coordonnées.Numville, [Tbl Nature demande] INNER JOIN
([Tbl Mode de contact] INNER JOIN (([Tbl Ville] INNER JOIN [Tbl Identité]
ON

[Tbl Ville].Numville = [Tbl Identité].Numville) INNER JOIN
(Tbl_Prestations

RIGHT JOIN (Tbl_InfosFinancement RIGHT JOIN ([Tbl Contact] INNER JOIN [Tbl
Utilisateurs] ON [Tbl Contact].CodeUtilisateur = [Tbl
Utilisateurs].CodeUtilisateur) ON Tbl_InfosFinancement.Numligne = [Tbl
Contact].PrestationContact) ON Tbl_Prestations.RefPrestation > Tbl_InfosFinancement.Prestation) ON [Tbl Identité].Numidentite = [Tbl
Contact].Numidentite) ON [Tbl Mode de contact].Nummodecontact = [Tbl
Contact].Nummodecontact) ON [Tbl Nature demande].Numnaturedemande = [Tbl
Contact].Numnaturedemande
WHERE ((([Tbl Identité].Numidentite)=ValeurControle("[Formulaires]![Frm
Fiche d'accueil]![Numidentite]")) AND (([Tbl
Contact].Numcontact)=ValeurControle("[Formulaires]![Frm Fiche
d'accueil]![Sous-formulaire Contacts].[Form]![Numcontact]")));