effacer un enregistrement dans formulaire avec sous formulaire
5 réponses
Hb
Bonjour,
Je cherche le moyen d'effacer avec un bouton depuis un formulaire de saisie
"commande", contenant un sous formulaire "details" :
un enregistrement d'une table appelée commande, avec tous les
enregistrements de la table details liés.
la relation est de un à plusieurs avec intégrité référentielle.
Avec un bouton classique d'effacement, il me dit :
impossible de supprimer l'enregistrement car la talbe détails comprend des
enregistrments connexes.
Je suppose que le cas est classique ?
Merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Tisane
Bonjour Hb,
Je cherche le moyen d'effacer avec un bouton depuis un formulaire de saisie "commande", contenant un sous formulaire "details" : un enregistrement d'une table appelée commande, avec tous les enregistrements de la table details liés. la relation est de un à plusieurs avec intégrité référentielle. Avec un bouton classique d'effacement, il me dit : impossible de supprimer l'enregistrement car la talbe détails comprend des enregistrments connexes. Je suppose que le cas est classique ?
Lorsque tu as créé la liaison avec intégrité référentielle entre les tables Commande et Details, tu pouvais cocher "Effacer en cascade les enregistrements correspondants". Il n'est pas trop tard. Ainsi, tu n'auras pas à changer ton bouton d'effacement.
-- Tisane
Bonjour Hb,
Je cherche le moyen d'effacer avec un bouton depuis un formulaire de
saisie "commande", contenant un sous formulaire "details" :
un enregistrement d'une table appelée commande, avec tous les
enregistrements de la table details liés.
la relation est de un à plusieurs avec intégrité référentielle.
Avec un bouton classique d'effacement, il me dit :
impossible de supprimer l'enregistrement car la talbe détails
comprend des enregistrments connexes.
Je suppose que le cas est classique ?
Lorsque tu as créé la liaison avec intégrité référentielle entre les tables
Commande et Details, tu pouvais cocher "Effacer en cascade les
enregistrements correspondants".
Il n'est pas trop tard. Ainsi, tu n'auras pas à changer ton bouton
d'effacement.
Je cherche le moyen d'effacer avec un bouton depuis un formulaire de saisie "commande", contenant un sous formulaire "details" : un enregistrement d'une table appelée commande, avec tous les enregistrements de la table details liés. la relation est de un à plusieurs avec intégrité référentielle. Avec un bouton classique d'effacement, il me dit : impossible de supprimer l'enregistrement car la talbe détails comprend des enregistrments connexes. Je suppose que le cas est classique ?
Lorsque tu as créé la liaison avec intégrité référentielle entre les tables Commande et Details, tu pouvais cocher "Effacer en cascade les enregistrements correspondants". Il n'est pas trop tard. Ainsi, tu n'auras pas à changer ton bouton d'effacement.
-- Tisane
Eric
Bonjour,
Avoir mis l'intégrité référentielle est une très bonne chose. *Ne pas avoir coché* Effacer en cascade est encore bien meilleur mais c'est un avis personnel. Sur l'évènement clic de ton bouton, 2 ordres SQL qui feront, après confirmation, le travail. De maniere succinte:
' Demande de confirmation à écrire ' puis si OK Dim strSQL as string Docmd.SetWarnings False '1er ordre : supprimer dans la table liée les enregistrements associés à l'enregistrement 'père' qui doit être supprimé. strSQL="Delete * from TableLiée where CléEtrangere=5" 'ou 5 represente la valeur de la clè primaire de la TablePere ou autre valeur à passer correspondant à l'enregistrement à effacer Dcmd.RunSQL strSQL '2eme ordre : supprimer l'enregistrement de la table pere strSQL ="Delete * from TablePere where ClePrimaire= 5" Dcmd.RunSQL strSQL Docmd.SetWarnings True
Bonjour, Je cherche le moyen d'effacer avec un bouton depuis un formulaire de saisie "commande", contenant un sous formulaire "details" : un enregistrement d'une table appelée commande, avec tous les enregistrements de la table details liés. la relation est de un à plusieurs avec intégrité référentielle. Avec un bouton classique d'effacement, il me dit : impossible de supprimer l'enregistrement car la talbe détails comprend des enregistrments connexes. Je suppose que le cas est classique ? Merci d'avance
HB
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Avoir mis l'intégrité référentielle est une très bonne chose. *Ne pas
avoir coché* Effacer en cascade est encore bien meilleur mais c'est un
avis personnel.
Sur l'évènement clic de ton bouton, 2 ordres SQL qui feront, après
confirmation, le travail. De maniere succinte:
' Demande de confirmation à écrire
' puis si OK
Dim strSQL as string
Docmd.SetWarnings False
'1er ordre : supprimer dans la table liée les enregistrements associés à
l'enregistrement 'père' qui doit être supprimé.
strSQL="Delete * from TableLiée where CléEtrangere=5" 'ou 5 represente
la valeur de la clè primaire de la TablePere ou autre valeur à passer
correspondant à l'enregistrement à effacer
Dcmd.RunSQL strSQL
'2eme ordre : supprimer l'enregistrement de la table pere
strSQL ="Delete * from TablePere where ClePrimaire= 5"
Dcmd.RunSQL strSQL
Docmd.SetWarnings True
Bonjour,
Je cherche le moyen d'effacer avec un bouton depuis un formulaire de saisie
"commande", contenant un sous formulaire "details" :
un enregistrement d'une table appelée commande, avec tous les
enregistrements de la table details liés.
la relation est de un à plusieurs avec intégrité référentielle.
Avec un bouton classique d'effacement, il me dit :
impossible de supprimer l'enregistrement car la talbe détails comprend des
enregistrments connexes.
Je suppose que le cas est classique ?
Merci d'avance
HB
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avoir mis l'intégrité référentielle est une très bonne chose. *Ne pas avoir coché* Effacer en cascade est encore bien meilleur mais c'est un avis personnel. Sur l'évènement clic de ton bouton, 2 ordres SQL qui feront, après confirmation, le travail. De maniere succinte:
' Demande de confirmation à écrire ' puis si OK Dim strSQL as string Docmd.SetWarnings False '1er ordre : supprimer dans la table liée les enregistrements associés à l'enregistrement 'père' qui doit être supprimé. strSQL="Delete * from TableLiée where CléEtrangere=5" 'ou 5 represente la valeur de la clè primaire de la TablePere ou autre valeur à passer correspondant à l'enregistrement à effacer Dcmd.RunSQL strSQL '2eme ordre : supprimer l'enregistrement de la table pere strSQL ="Delete * from TablePere where ClePrimaire= 5" Dcmd.RunSQL strSQL Docmd.SetWarnings True
Bonjour, Je cherche le moyen d'effacer avec un bouton depuis un formulaire de saisie "commande", contenant un sous formulaire "details" : un enregistrement d'une table appelée commande, avec tous les enregistrements de la table details liés. la relation est de un à plusieurs avec intégrité référentielle. Avec un bouton classique d'effacement, il me dit : impossible de supprimer l'enregistrement car la talbe détails comprend des enregistrments connexes. Je suppose que le cas est classique ? Merci d'avance
HB
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Tisane
Bonjour Eric,
Avoir mis l'intégrité référentielle est une très bonne chose. *Ne pas avoir coché* Effacer en cascade est encore bien meilleur mais c'est un avis personnel. Sur l'évènement clic de ton bouton, 2 ordres SQL qui feront, après confirmation, le travail. De maniere succinte: ' Demande de confirmation à écrire ' puis si OK Dim strSQL as string Docmd.SetWarnings False '1er ordre : supprimer dans la table liée les enregistrements associés à l'enregistrement 'père' qui doit être supprimé. strSQL="Delete * from TableLiée where CléEtrangere=5" 'ou 5 represente la valeur de la clè primaire de la TablePere ou autre valeur à passer correspondant à l'enregistrement à effacer Dcmd.RunSQL strSQL '2eme ordre : supprimer l'enregistrement de la table pere strSQL ="Delete * from TablePere where ClePrimaire= 5" Dcmd.RunSQL strSQL Docmd.SetWarnings True
La bêtise restera toujours aussi vite faite ;-)) Il y a également demande de confirmation quand on applique la suppression en cascade.
-- Tisane (qui fuit la programmation quand elle n'est pas indispensable ;-)
Bonjour, Je cherche le moyen d'effacer avec un bouton depuis un formulaire de saisie "commande", contenant un sous formulaire "details" : un enregistrement d'une table appelée commande, avec tous les enregistrements de la table details liés. la relation est de un à plusieurs avec intégrité référentielle. Avec un bouton classique d'effacement, il me dit : impossible de supprimer l'enregistrement car la talbe détails comprend des enregistrments connexes. Je suppose que le cas est classique ? Merci d'avance
HB
Bonjour Eric,
Avoir mis l'intégrité référentielle est une très bonne chose. *Ne pas
avoir coché* Effacer en cascade est encore bien meilleur mais c'est un
avis personnel.
Sur l'évènement clic de ton bouton, 2 ordres SQL qui feront, après
confirmation, le travail. De maniere succinte:
' Demande de confirmation à écrire
' puis si OK
Dim strSQL as string
Docmd.SetWarnings False
'1er ordre : supprimer dans la table liée les enregistrements
associés à l'enregistrement 'père' qui doit être supprimé.
strSQL="Delete * from TableLiée where CléEtrangere=5" 'ou 5 represente
la valeur de la clè primaire de la TablePere ou autre valeur à passer
correspondant à l'enregistrement à effacer
Dcmd.RunSQL strSQL
'2eme ordre : supprimer l'enregistrement de la table pere
strSQL ="Delete * from TablePere where ClePrimaire= 5"
Dcmd.RunSQL strSQL
Docmd.SetWarnings True
La bêtise restera toujours aussi vite faite ;-))
Il y a également demande de confirmation quand on applique la suppression en
cascade.
--
Tisane (qui fuit la programmation quand elle n'est pas indispensable ;-)
Bonjour,
Je cherche le moyen d'effacer avec un bouton depuis un formulaire
de saisie "commande", contenant un sous formulaire "details" :
un enregistrement d'une table appelée commande, avec tous les
enregistrements de la table details liés.
la relation est de un à plusieurs avec intégrité référentielle.
Avec un bouton classique d'effacement, il me dit :
impossible de supprimer l'enregistrement car la talbe détails
comprend des enregistrments connexes.
Je suppose que le cas est classique ?
Merci d'avance
Avoir mis l'intégrité référentielle est une très bonne chose. *Ne pas avoir coché* Effacer en cascade est encore bien meilleur mais c'est un avis personnel. Sur l'évènement clic de ton bouton, 2 ordres SQL qui feront, après confirmation, le travail. De maniere succinte: ' Demande de confirmation à écrire ' puis si OK Dim strSQL as string Docmd.SetWarnings False '1er ordre : supprimer dans la table liée les enregistrements associés à l'enregistrement 'père' qui doit être supprimé. strSQL="Delete * from TableLiée where CléEtrangere=5" 'ou 5 represente la valeur de la clè primaire de la TablePere ou autre valeur à passer correspondant à l'enregistrement à effacer Dcmd.RunSQL strSQL '2eme ordre : supprimer l'enregistrement de la table pere strSQL ="Delete * from TablePere where ClePrimaire= 5" Dcmd.RunSQL strSQL Docmd.SetWarnings True
La bêtise restera toujours aussi vite faite ;-)) Il y a également demande de confirmation quand on applique la suppression en cascade.
-- Tisane (qui fuit la programmation quand elle n'est pas indispensable ;-)
Bonjour, Je cherche le moyen d'effacer avec un bouton depuis un formulaire de saisie "commande", contenant un sous formulaire "details" : un enregistrement d'une table appelée commande, avec tous les enregistrements de la table details liés. la relation est de un à plusieurs avec intégrité référentielle. Avec un bouton classique d'effacement, il me dit : impossible de supprimer l'enregistrement car la talbe détails comprend des enregistrments connexes. Je suppose que le cas est classique ? Merci d'avance
HB
Eric
Bonjour Tisane,
Bonjour Eric, La ***** restera toujours aussi vite faite ;-))
Je n'ai jamais compris pourquoi une telle option quand on s'imagine les conséquences désastreuses offertes par cette possibilité. J'ai ainsi pris l'habitude de ne jamais cocher l'option afin de maitriser mes suppressions et parfois, je souhaiterais d'autres garde-fous. -- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Tisane,
Bonjour Eric,
La ***** restera toujours aussi vite faite ;-))
Je n'ai jamais compris pourquoi une telle option quand on
s'imagine les conséquences désastreuses offertes par
cette possibilité. J'ai ainsi pris l'habitude de ne jamais
cocher l'option afin de maitriser mes suppressions et parfois,
je souhaiterais d'autres garde-fous.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Eric, La ***** restera toujours aussi vite faite ;-))
Je n'ai jamais compris pourquoi une telle option quand on s'imagine les conséquences désastreuses offertes par cette possibilité. J'ai ainsi pris l'habitude de ne jamais cocher l'option afin de maitriser mes suppressions et parfois, je souhaiterais d'autres garde-fous. -- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Tisane
Eric wrote:
Bonjour Tisane,
La ***** restera toujours aussi vite faite ;-))
Je n'ai jamais compris pourquoi une telle option quand on s'imagine les conséquences désastreuses offertes par cette possibilité. J'ai ainsi pris l'habitude de ne jamais cocher l'option afin de maitriser mes suppressions et parfois, je souhaiterais d'autres garde-fous.
En effet, ce serait une erreur que de cocher systématiquement cette option. Je ne l'utilise qu'au compte-goutte et dans ce cas, je la documente car malheureusement, il n'y a pas de signe distinctif visuel entre une liaison avec seule intégrité et une liaison avec modification ou effacement en cascade. Mais, dans certains contextes, elle est très utile. Hors la maîtrise que tu as en passant par du code, je ne vois qu'un intérêt à la programmer, c'est la personnalisation du message de suppression (si tant est que les utilisateurs lisent les messages d'avertissement).
Heu, non, je ne l'ai pas dit ***** ;-))
-- Tisane
Eric wrote:
Bonjour Tisane,
La ***** restera toujours aussi vite faite ;-))
Je n'ai jamais compris pourquoi une telle option quand on
s'imagine les conséquences désastreuses offertes par
cette possibilité. J'ai ainsi pris l'habitude de ne jamais
cocher l'option afin de maitriser mes suppressions et parfois,
je souhaiterais d'autres garde-fous.
En effet, ce serait une erreur que de cocher systématiquement cette option.
Je ne l'utilise qu'au compte-goutte et dans ce cas, je la documente car
malheureusement, il n'y a pas de signe distinctif visuel entre une liaison
avec seule intégrité et une liaison avec modification ou effacement en
cascade.
Mais, dans certains contextes, elle est très utile. Hors la maîtrise que tu
as en passant par du code, je ne vois qu'un intérêt à la programmer, c'est
la personnalisation du message de suppression (si tant est que les
utilisateurs lisent les messages d'avertissement).
Je n'ai jamais compris pourquoi une telle option quand on s'imagine les conséquences désastreuses offertes par cette possibilité. J'ai ainsi pris l'habitude de ne jamais cocher l'option afin de maitriser mes suppressions et parfois, je souhaiterais d'autres garde-fous.
En effet, ce serait une erreur que de cocher systématiquement cette option. Je ne l'utilise qu'au compte-goutte et dans ce cas, je la documente car malheureusement, il n'y a pas de signe distinctif visuel entre une liaison avec seule intégrité et une liaison avec modification ou effacement en cascade. Mais, dans certains contextes, elle est très utile. Hors la maîtrise que tu as en passant par du code, je ne vois qu'un intérêt à la programmer, c'est la personnalisation du message de suppression (si tant est que les utilisateurs lisent les messages d'avertissement).