Bonjour à tous,
Voilà mon problème :
Je voudrais faire une requête DELETE relativement compliquée (à mon goût).
Pour ce faire, je passe par le QBE, je commence à faire une requête SELECT, pour être sûr que je prend bien les bons enregistrements.
Jusque là, aucun soucis, tout fonctionne parfaitement bien.
Le problême arrive quand je transforme ma requête SELECT en DELETE, lorsque j'exécute cette requête DELETE, Access me dit :
"Impossible de supprimer dans les tables spécifiées."
Selon l'aide d'Access, je n'aurais pas accès à mes tables... Or j'ai bien un accès complet.
Voici ma requête SELECT :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT S_TRS_OAQ10.* FROM ((S_OAQ10 RIGHT JOIN S_TRS_OAQ10 ON S_OAQ10.CODE = S_TRS_OAQ10.CODE_OAQ10) LEFT JOIN S_CAG ON S_OAQ10.CODE = S_CAG.CODE_OAQ10) LEFT JOIN (S_TRS RIGHT JOIN S_TRS_CAG ON S_TRS.CLEF = S_TRS_CAG.CLEF_TRS) ON S_CAG.CLEF = S_TRS_CAG.CLEF_CAG WHERE (((S_TRS_CAG.CLEF_TRS)=[s_trs].[clef]));
=> Fonctionne super bien
Une fois convertie en DELETE :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DELETE S_TRS_OAQ10.*, S_TRS_CAG.CLEF_TRS FROM ((S_OAQ10 RIGHT JOIN S_TRS_OAQ10 ON S_OAQ10.CODE = S_TRS_OAQ10.CODE_OAQ10) LEFT JOIN S_CAG ON S_OAQ10.CODE = S_CAG.CODE_OAQ10) LEFT JOIN (S_TRS RIGHT JOIN S_TRS_CAG ON S_TRS.CLEF = S_TRS_CAG.CLEF_TRS) ON S_CAG.CLEF = S_TRS_CAG.CLEF_CAG WHERE (((S_TRS_CAG.CLEF_TRS)=[s_trs].[clef]));
Ne fonctionne pas du tout!
C'est à ce stade que j'obtiens le message d'access :
"Impossible de supprimer dans les tables spécifiées."
Je ne suis pas un expert en jointures, loin de là, c'est la première fois que je les utilises.
Bon, si ma requête SELECT ne fonctionnait pas, je me dirais que j'ai fait une erreur, mais la SELECT fonctionne parfaitement bien (enfin du moins elle en à l'air).
Donc si une âme généreuse pouvait m'aider, je suis preneur.
Merci d'avance à ceux qui m'aideront.
Partager