Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bug requete suppression Access 2000

7 réponses
Avatar
Gaulois
En suivant l'exemple sur la suppression d'enreg dans une table à partir d'un
champ identique d'une autre table (mis en relation), la suppression n'est pas
possible.

ex : colonne 1 de la requete : tous les champs de la table A (*) , table A,
"à partir de" - colonne 2 champ en relation, table B, où

7 réponses

Avatar
ze Titi
*Bonjour* à toi aussi Gaulois !

Ca n'est pas très clair...
Plus d'informations sur
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

Dans ton message
En suivant l'exemple sur la suppression d'enreg dans une table à partir d'un
champ identique d'une autre table (mis en relation), la suppression n'est pas
possible.

ex : colonne 1 de la requete : tous les champs de la table A (*) , table A,
"à partir de" - colonne 2 champ en relation, table B, où


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Eric
Bonjour,

A tester sur une copie de la table où les enregistrements seront
supprimés (à copier dans la fenêtre SQL d'une nouvelle requête):
DELETE FROM TABLEA
WHERE ChampCommun IN (
SELECT DISTINCT ChampCommun
FROM TABLEB
);
ça donne quoi ?

En suivant l'exemple sur la suppression d'enreg dans une table à partir d'un
champ identique d'une autre table (mis en relation), la suppression n'est pas
possible.

ex : colonne 1 de la requete : tous les champs de la table A (*) , table A,
"à partir de" - colonne 2 champ en relation, table B, où


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Gaulois
Bonjour Eric,

Merci pour cette solution qui fonctionne, mais supprime les enregistrements
concernés dans les 2 tables. J'aurai voulu supprimer les enreg uniquement
dans la table A. (Comme indiqué dans le code SQL)

Si je modifie les relations entre les 2 tables ( coche : Appliquer
l'intégrité référentielle ; Effacer en cascade les enregistremens
correspondants) la suppression ne fonctionne plus.
Je ne comprend pas.



Bonjour,

A tester sur une copie de la table où les enregistrements seront
supprimés (à copier dans la fenêtre SQL d'une nouvelle requête):
DELETE FROM TABLEA
WHERE ChampCommun IN (
SELECT DISTINCT ChampCommun
FROM TABLEB
);
ça donne quoi ?

En suivant l'exemple sur la suppression d'enreg dans une table à partir d'un
champ identique d'une autre table (mis en relation), la suppression n'est pas
possible.

ex : colonne 1 de la requete : tous les champs de la table A (*) , table A,
"à partir de" - colonne 2 champ en relation, table B, où


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Gaulois
Bonjour,
Eric m'a donné un bon début de réponse avec du code sql direct, mais le hic
c'est que çà supprime dans les 2 tables.


*Bonjour* à toi aussi Gaulois !

Ca n'est pas très clair...
Plus d'informations sur
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

Dans ton message
En suivant l'exemple sur la suppression d'enreg dans une table à partir d'un
champ identique d'une autre table (mis en relation), la suppression n'est pas
possible.

ex : colonne 1 de la requete : tous les champs de la table A (*) , table A,
"à partir de" - colonne 2 champ en relation, table B, où


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info






Avatar
Eric
Bonsoir,

Le SQL donné ne supprime les enregistrements que dans la TableA sauf ci
cette derniere est en relation avec une autre table avec effacement en
cascade (mais tu n'en parlais pas). La table B est en rien affecté là.
Dans ce SQL il n' y a pas de jointure entre les tables.
Plus précisément, le problème c'est quoi ?

Bonjour Eric,

Merci pour cette solution qui fonctionne, mais supprime les enregistrements
concernés dans les 2 tables. J'aurai voulu supprimer les enreg uniquement
dans la table A. (Comme indiqué dans le code SQL)

Si je modifie les relations entre les 2 tables ( coche : Appliquer
l'intégrité référentielle ; Effacer en cascade les enregistremens
correspondants) la suppression ne fonctionne plus.
Je ne comprend pas.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Gaulois
Bonjour Eric,

Dans "Outils"; "Relations" , les 2 tables sont en relations avec l'intégrité
référentielle et l'effacement en cascade.
Dans la requete suppresion j'insère uniquement la table A, où doivent
réellement être supprimés les enregistrements contenus dans la table B. J'ai
inséré ton code SQL, dans la requete. La requete fonctionne mais supprime les
enreg concernés dans les 2 tables.

Mais si je supprime dans les relations, l'effacement en cascade, quand
j'exécute la requete m'avertit qu'elle va supprimer "n" enregistrements, (je
valide), puis m'indique qu'elle ne pourra supprimer ces enregistrements,
voici le message : "Impossible d'effacer les "n" enregistrements de la
requete Suppression à la suite de violation de clé et 0 enregistrements à la
suite de violation de verrou.



Bonsoir,

Le SQL donné ne supprime les enregistrements que dans la TableA sauf ci
cette derniere est en relation avec une autre table avec effacement en
cascade (mais tu n'en parlais pas). La table B est en rien affecté là.
Dans ce SQL il n' y a pas de jointure entre les tables.
Plus précisément, le problème c'est quoi ?

Bonjour Eric,

Merci pour cette solution qui fonctionne, mais supprime les enregistrements
concernés dans les 2 tables. J'aurai voulu supprimer les enreg uniquement
dans la table A. (Comme indiqué dans le code SQL)

Si je modifie les relations entre les 2 tables ( coche : Appliquer
l'intégrité référentielle ; Effacer en cascade les enregistremens
correspondants) la suppression ne fonctionne plus.
Je ne comprend pas.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Gaulois
re-bonjour Eric,

ton code SQL fonctionne bien. Finalement j'ai supprimé les tables dans
"outils"; "relations" , et çà fonctionne bien.
Merci encore pour ton aide.




Bonsoir,

Le SQL donné ne supprime les enregistrements que dans la TableA sauf ci
cette derniere est en relation avec une autre table avec effacement en
cascade (mais tu n'en parlais pas). La table B est en rien affecté là.
Dans ce SQL il n' y a pas de jointure entre les tables.
Plus précisément, le problème c'est quoi ?

Bonjour Eric,

Merci pour cette solution qui fonctionne, mais supprime les enregistrements
concernés dans les 2 tables. J'aurai voulu supprimer les enreg uniquement
dans la table A. (Comme indiqué dans le code SQL)

Si je modifie les relations entre les 2 tables ( coche : Appliquer
l'intégrité référentielle ; Effacer en cascade les enregistremens
correspondants) la suppression ne fonctionne plus.
Je ne comprend pas.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr