OVH Cloud OVH Cloud

Table mère et tables filles

13 réponses
Avatar
Luis
Bonjour,
J'ai voulu faire la liaison des tables avec int=E9grit=E9=20
r=E9f=E9rentielle dans la base source et cocher "suppression=20
en cascade"=20
Mais je ne peux pas car des donn=E9es existent dans les=20
tables filles, mais pas dans la table m=E8re.

Alors, il y aurait-il moyen de cr=E9er un code VBA =E0=20
l'ouverture du formulaire concern=E9, pour qu'il teste et=20
compare les tables et supprime automatiquement tous les=20
enregistrements orphelins dans les tables filles.
Je suis sur une table DAO.
Merci.
Luis

3 réponses

1 2
Avatar
Luis
Bonjour,
Tout d'abord, je tiens à te remercier pour la peine que
tu te donnes pour trouver une solutions à mon problème et
tu n'as pas à t'excuser si tu ne trouves pas.
J'ai essayé de faire comme tu me dis, mais ça ne marche
pas, d'ailleurs même si je ne sélection qu'un seul
enregistrement et je vais dans le menu Edition le
Supprimer l'enregistrement n'est pas disponible, alors
qu'il est pour les requêtes selection.
Si tu trouve le hic, ça m'arrangerais bien.
Merci.
Luis
-----Message d'origine-----
?
Là, j'avoue que j'en sais rien. Ma solution n'est sans
doute pas adaptée à

ton problème, excuse moi.
Lorsque tu ouvres ta requête de non correspondance en
mode feuille de donnée

peux tu supprimer les enregistrements en faisant [CTRL]
+ A puis touche

[suppr] ?
Comme ça, ça marche ??

Sinon je passe la main.

A +
Damien.


"Luis" a écrit
dans le message de

news:0b6101c3dc3e$bf7d0330$
Bonjour,
J'ai fais comme tu m'as dit et voilà un autre problème:

Impossible de supprimer dans les tables spécifiées.
(Erreur 3086)
Vous avez essayé de supprimer des données d'une ou
plusieurs tables, mais la suppression ne peut pas être
menée à terme.
Je ne comprend pas car la base n'est pas en lecture
seule.

Si tu sais pour quelles raisons Access refuse?
Merci.
Luis
-----Message d'origine-----
Bon tu fais ta requete de non correspondance. Tu fermes
cette requete tu

sauvegarde.
Ensuite tu crées une nouvelle requete en mode création.
Access te demande de

choisir une table tu choisis l'onglet requete et tu
séléctionnes ta requête

de non correspondance
Ensuite dans le menu (en Haut) Il y a "requete" (entre
insertion et outils)

tu cliques et tu choisis requete suppression.
en sql si tu préfères ca te donne
delete *
from [ta requete de non correspondance];
ok ?

A +
Damien.
"Luis" a écrit
dans le message de

news:07ec01c3dc29$25052590$
Bonjour,
Je dois avoir la tête dans le cul.
J'ai bien créé un requêt de non correspondance, mais je
ne trouve pas "Menu/requête" pour choisir suppression.
Où est-ce ça ce trouve, le menu/requête pour choisir
suppression?
Merci.
Luis
-----Message d'origine-----
Re
ben comme je t'ai dis :-)
Quand tu es en mode création d'une nouvelle requête
Access te montre les

tables disponible mais il y a aussi un onglet requette.
(tu peux faire aussi

menurequeteafficher la table ) Tu cliques dessus et
tu



choisis ta requête
de non correspondance.
Ensuite tu fais menurequete et tu choisis suppression
Tu prends tous les champs de ta requête, tu exécutes et
logiquement ça

marche.

A +
Damien.
"Luis" a écrit
dans le message de

news:0a9001c3dc22$88e2a760$
Bonjour,
Très bonne idée, comment faire la requête suppression à
partir de la requête de non correspondance.
Merci.
Luis
-----Message d'origine-----
Bonjour,
Sauvegarde ta requete de non correspondance
Puis crée un requete suppression basée sur ta requête
de



non corespondance
et là tu supprime tout.

En espèrant t'aider.

A +
Damien.
"Luis" a écrit
dans le message de

news:097901c3dc1c$447e9fd0$
Bonjour,
Je fais avec une requête de non correspondance, qui me
sort une liste et je supprime à la main les
enregistrements dans les tables fille, mais quel
boulot.



Il y a t'il un moyen plus simple?
Merci.
Luis
-----Message d'origine-----
Bonjour.

avec l'intégrité référentielle, l'effacement en
cascade




et la mise àjour en
cascade et le type de jointure 1, tu ne dois pas
avoir





d'orphelines. il
suffit de mettre à jour une bonne fois pour toutes ta
table filles avec une

requête suppression et mettre tes relations désirées
pour que tout rentre

dans l'ordre.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le
forum







"Luis" a écrit
dans le message de

news:06da01c3dc0d$3896ac30$
Bonjour,
J'ai voulu faire la liaison des tables avec intégrité
référentielle dans la base source et
cocher "suppression



en cascade"
Mais je ne peux pas car des données existent dans les
tables filles, mais pas dans la table mère.

Alors, il y aurait-il moyen de créer un code VBA à
l'ouverture du formulaire concerné, pour qu'il teste
et




compare les tables et supprime automatiquement tous
les




enregistrements orphelins dans les tables filles.
Je suis sur une table DAO.
Merci.
Luis



.




.




.




.




.







Avatar
Luis
Re-bonjour,
Dans la requête de non correspondances, j'ai changé dans
exécuter les autorisations j'ai mis celles du
propriétaire et la je peux supprimer en faisant le ctrl1A
del. directement.
Mais ça ne marche toujours pas avec la requête de
suppression.
Mais cette solution me convient car bien plus rapide que
la supression manuelle.
Merci à bientôt.
Luis
-----Message d'origine-----
?
Là, j'avoue que j'en sais rien. Ma solution n'est sans
doute pas adaptée à

ton problème, excuse moi.
Lorsque tu ouvres ta requête de non correspondance en
mode feuille de donnée

peux tu supprimer les enregistrements en faisant [CTRL]
+ A puis touche

[suppr] ?
Comme ça, ça marche ??

Sinon je passe la main.

A +
Damien.


"Luis" a écrit
dans le message de

news:0b6101c3dc3e$bf7d0330$
Bonjour,
J'ai fais comme tu m'as dit et voilà un autre problème:

Impossible de supprimer dans les tables spécifiées.
(Erreur 3086)
Vous avez essayé de supprimer des données d'une ou
plusieurs tables, mais la suppression ne peut pas être
menée à terme.
Je ne comprend pas car la base n'est pas en lecture
seule.

Si tu sais pour quelles raisons Access refuse?
Merci.
Luis
-----Message d'origine-----
Bon tu fais ta requete de non correspondance. Tu fermes
cette requete tu

sauvegarde.
Ensuite tu crées une nouvelle requete en mode création.
Access te demande de

choisir une table tu choisis l'onglet requete et tu
séléctionnes ta requête

de non correspondance
Ensuite dans le menu (en Haut) Il y a "requete" (entre
insertion et outils)

tu cliques et tu choisis requete suppression.
en sql si tu préfères ca te donne
delete *
from [ta requete de non correspondance];
ok ?

A +
Damien.
"Luis" a écrit
dans le message de

news:07ec01c3dc29$25052590$
Bonjour,
Je dois avoir la tête dans le cul.
J'ai bien créé un requêt de non correspondance, mais je
ne trouve pas "Menu/requête" pour choisir suppression.
Où est-ce ça ce trouve, le menu/requête pour choisir
suppression?
Merci.
Luis
-----Message d'origine-----
Re
ben comme je t'ai dis :-)
Quand tu es en mode création d'une nouvelle requête
Access te montre les

tables disponible mais il y a aussi un onglet requette.
(tu peux faire aussi

menurequeteafficher la table ) Tu cliques dessus et
tu



choisis ta requête
de non correspondance.
Ensuite tu fais menurequete et tu choisis suppression
Tu prends tous les champs de ta requête, tu exécutes et
logiquement ça

marche.

A +
Damien.
"Luis" a écrit
dans le message de

news:0a9001c3dc22$88e2a760$
Bonjour,
Très bonne idée, comment faire la requête suppression à
partir de la requête de non correspondance.
Merci.
Luis
-----Message d'origine-----
Bonjour,
Sauvegarde ta requete de non correspondance
Puis crée un requete suppression basée sur ta requête
de



non corespondance
et là tu supprime tout.

En espèrant t'aider.

A +
Damien.
"Luis" a écrit
dans le message de

news:097901c3dc1c$447e9fd0$
Bonjour,
Je fais avec une requête de non correspondance, qui me
sort une liste et je supprime à la main les
enregistrements dans les tables fille, mais quel
boulot.



Il y a t'il un moyen plus simple?
Merci.
Luis
-----Message d'origine-----
Bonjour.

avec l'intégrité référentielle, l'effacement en
cascade




et la mise àjour en
cascade et le type de jointure 1, tu ne dois pas
avoir





d'orphelines. il
suffit de mettre à jour une bonne fois pour toutes ta
table filles avec une

requête suppression et mettre tes relations désirées
pour que tout rentre

dans l'ordre.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le
forum







"Luis" a écrit
dans le message de

news:06da01c3dc0d$3896ac30$
Bonjour,
J'ai voulu faire la liaison des tables avec intégrité
référentielle dans la base source et
cocher "suppression



en cascade"
Mais je ne peux pas car des données existent dans les
tables filles, mais pas dans la table mère.

Alors, il y aurait-il moyen de créer un code VBA à
l'ouverture du formulaire concerné, pour qu'il teste
et




compare les tables et supprime automatiquement tous
les




enregistrements orphelins dans les tables filles.
Je suis sur une table DAO.
Merci.
Luis



.




.




.




.




.







Avatar
Raymond [mvp]
dans tes requêtes supprime l'intégrité référentielle et change
éventuellement le type de jointure.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Luis" a écrit dans le message de
news:0a6201c3dc48$31f19da0$
Bonjour,
Tout d'abord, je tiens à te remercier pour la peine que
tu te donnes pour trouver une solutions à mon problème et
tu n'as pas à t'excuser si tu ne trouves pas.
J'ai essayé de faire comme tu me dis, mais ça ne marche
pas, d'ailleurs même si je ne sélection qu'un seul
enregistrement et je vais dans le menu Edition le
Supprimer l'enregistrement n'est pas disponible, alors
qu'il est pour les requêtes selection.
Si tu trouve le hic, ça m'arrangerais bien.
Merci.
Luis
1 2