Problème de suppression d'enregistrement

Fermé
fifidibosco Messages postés 72 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 17 juillet 2023 - 30 juin 2018 à 13:16
fifidibosco Messages postés 72 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 17 juillet 2023 - 4 juil. 2018 à 17:06
Bonjour,
J’ai un formulaire de facturation qui me permet d’ajouter des articles à facturer dans les séjours des clients.

La partie haute du formulaire est bâtie sur une requête qui regroupe les clients (table T_Clients) et les séjours de ces clients (table T_Séjour), et le sous formulaire est basé sur une requête qui regroupe la table articles (table T_article) où sont listés tous les articles à facturer et la table qui détaille les séjours, date de facturation, quantité facturée, etc.. (table T_detSejour).

L’ajout d’article fonctionne correctement. Les articles apparaissent dans le sous formulaire, dans la requête du sous formulaire et dans les tables articles et détail séjour qui sont à la base de cette requête.

En revanche, lorsque je supprime un article, il disparait bien de la requête détailSéjour-article ainsi que de la table détailSejour, mais il n’est pas effacé de la table Articles.
J’ai créé une requête de non correspondance entre la table T_Article et la table T_DetSejour qui liste bien les articles orphelins, ceux qui n’ont plus de correspondance dans la table T_DetSejour après suppression par le formulaire de facturation.

J’ai transformé cette requête de non correspondance en requête de suppression des articles.
Lorsque je l’exécute j’ai le message :
« Spécifiez la table contenant les enregistrements que vous voulez supprimer. »

Le code SQL généré par l’assistant requête est :

DELETE T_Articles.cle_article, T_Articles.Article_Designation, T_Articles.Article_Famille, T_Articles.Article_PrixUnit, T_DetSejour.cle_article
FROM T_Articles LEFT JOIN T_DetSejour ON T_Articles.[cle_article] = T_DetSejour.[cle_article]
WHERE (((T_DetSejour.cle_article) Is Null));

Il me semblait que FROM T_Articles spécifiait justement cette table.

Question 1 : Pourquoi la suppression par le formulaire ne se fait pas automatiquement dans les tables comme l’ajout ?
Question 2 : Quel est le code à utiliser pour rendre la requête suppression fonctionnelle ? J’ai essayé plusieurs code trouvés sur le web, sans résultat.

Par avance merci
Fifi
A voir également:

3 réponses

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
30 juin 2018 à 15:32
bonjour, peut-être
DELETE * FROM ...
0
fifidibosco Messages postés 72 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 17 juillet 2023
1 juil. 2018 à 13:35
Bonjour yg_be et merci,

j'essaie ça ce soir et je reviens donner le résultat
fifi
0
fifidibosco Messages postés 72 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 17 juillet 2023
4 juil. 2018 à 17:06
C'est en effet DELETE FROM qu'il faut utiliser.

Pour moi ça donne :

DELETE FROM T_Articles WHERE not exists (select cle_article from T_DetSejour where T_Articles.[cle_article] = T_DetSejour.[cle_article])


(donné par nico84)

Fifi
0