Une petit astuce concernant les jointures utilisant des égalités scalaires. Mais j'ouvre peut-être une porte ouverte.
J'utilise une (très très très ...) vieille version Accès (2003), il est possible que cette limitation n'existe plus depuis longtemps.

Bref, on peut écrire une jointure avec plus ou moins de ponctuation. Les deux requêtes ci-dessous sont équivalentes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT * FROM ((
TABLE1 LEFT JOIN TABLE2 ON TABLE2.CHAMP1=TABLE1.CHAMP1 AND TABLE2.CHAMP2=TABLE1.CHAMP2) 
LEFT JOIN TABLE3 ON TABLE3.CHAMP1=TABLE1.CHAMP1 AND TABLE3.CHAMP2=TABLE1.CHAMP2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT * FROM ((
TABLE1 LEFT JOIN TABLE2 ON ((TABLE2.CHAMP1=TABLE1.CHAMP1) AND (TABLE2.CHAMP2=TABLE1.CHAMP2)) ) 
LEFT JOIN TABLE3 ON ((TABLE3.CHAMP1=TABLE1.CHAMP1) AND (TABLE3.CHAMP2=TABLE1.CHAMP2)) )
Mais dès que l'on utilise une égalité scalaire dans la jointure, l'utilisation de la ponctuation est obligatoire.
A noter que dans ma version d'Access, l'égalité scalaire ne peut être représentée dans le mode Création. Donc l'édition dans le mode SQL est obligatoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT * FROM ((
TABLE1 LEFT JOIN TABLE2 ON ((TABLE2.CHAMP1=TABLE1.CHAMP1) AND (TABLE2.CHAMP2=TABLE1.CHAMP2) AND (TABLE2.CHAMP3='valeur1')) ) 
LEFT JOIN TABLE3 ON ((TABLE3.CHAMP1=TABLE1.CHAMP1) AND (TABLE3.CHAMP2=TABLE1.CHAMP2) AND (TABLE3.CHAMP3='valeur2')) )