Je souhaiterai créer une requête récurrente dans access mais je rame.
Je souhaiterai supprimer dans une table des enregistrements qui s'appellent les uns les autres via
un champs.
Ma table ressemeble à ceci:
Id | Texte1 | IdLigneSup
1 A 0
2 B 1
3 C 1
4 D 2
5 E 4
Je souhaiterai supprimer par exemple Id=1, il faudrait que la requête supprime aussi tous les
enregistrements qui y sont reliés directement et indirectement. Dans l'exemple, la requête devra
tout supprimer.
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
BM
D'aprés moi, il n'est pas possible de faire des itérations avec des requêtes! Forget it! Ton problème est un problème classique de parcours d'arbre dans lequel on ne sait pas à priori combien il y a de niveaux de ramification à explorer. Le souci est que pour supprimer une branche, tu dois supprimer également toutes les ramifications qui en découlent (OK?).
Il faut écrire une procédure VBA itérative qui va supprimer tous les 'fils' du niveau (n) qu'on lui indique (comme paramètre lors de l'appel), avec la structure suivante:
Chercher un par un les enregistrements pour lesquels IDLSUP correspond à n (ce sont les 'fils' de n)
a) s'il n'y en a aucun, tu peux supprimer l'enregistrement ID = n et quitter la procédure (Exit). b) pour chacun de ceux qui seront trouvés, appeler la même procédure en donnant ID comme niveau à traiter.
Lorsque ces itérations seront terminées, il restera à supprimer l'enregistrement pour lequel ID = n.
Attention 1 : mettre des sécurités ou utiliser intensivement les points d'arrêt dans le debogueur car le risque est grand de faire tourner des boucles sans fin et de se retrouver bloqué sans pouvoir reprendre la main. Attention 2 : à chaque nouvelle ramification qui appelle la même procédure, l'ordinateur doit empiler des données dans une zone qui a une limite. il y a un risque potentiel d'aboutir à un blocage s'il y a un trop grand nombre de ramifications successives.
-----Message d'origine----- Bonsoir
Je souhaiterai créer une requête récurrente dans access mais je rame.
Je souhaiterai supprimer dans une table des enregistrements qui s'appellent les uns les autres via
un champs.
Ma table ressemeble à ceci:
Id | Texte1 | IdLigneSup 1 A 0 2 B 1 3 C 1 4 D 2 5 E 4
Je souhaiterai supprimer par exemple Id=1, il faudrait que la requête supprime aussi tous les
enregistrements qui y sont reliés directement et indirectement. Dans l'exemple, la requête devra
tout supprimer.
Si vous avez une idée lumineuse je serai preneur
Merci d'avance Buddy
.
D'aprés moi, il n'est pas possible de faire des itérations
avec des requêtes! Forget it!
Ton problème est un problème classique de parcours d'arbre
dans lequel on ne sait pas à priori combien il y a de
niveaux de ramification à explorer.
Le souci est que pour supprimer une branche, tu dois
supprimer également toutes les ramifications qui en
découlent (OK?).
Il faut écrire une procédure VBA itérative qui va
supprimer tous les 'fils' du niveau (n) qu'on lui indique
(comme paramètre lors de l'appel), avec la structure
suivante:
Chercher un par un les enregistrements pour lesquels
IDLSUP correspond à n (ce sont les 'fils' de n)
a) s'il n'y en a aucun, tu peux supprimer l'enregistrement
ID = n et quitter la procédure (Exit).
b) pour chacun de ceux qui seront trouvés, appeler la même
procédure en donnant ID comme niveau à traiter.
Lorsque ces itérations seront terminées, il restera à
supprimer l'enregistrement pour lequel ID = n.
Attention 1 : mettre des sécurités ou utiliser
intensivement les points d'arrêt dans le debogueur car le
risque est grand de faire tourner des boucles sans fin et
de se retrouver bloqué sans pouvoir reprendre la main.
Attention 2 : à chaque nouvelle ramification qui appelle
la même procédure, l'ordinateur doit empiler des données
dans une zone qui a une limite. il y a un risque potentiel
d'aboutir à un blocage s'il y a un trop grand nombre de
ramifications successives.
-----Message d'origine-----
Bonsoir
Je souhaiterai créer une requête récurrente dans access
mais je rame.
Je souhaiterai supprimer dans une table des
enregistrements qui s'appellent les uns les autres via
un champs.
Ma table ressemeble à ceci:
Id | Texte1 | IdLigneSup
1 A 0
2 B 1
3 C 1
4 D 2
5 E 4
Je souhaiterai supprimer par exemple Id=1, il faudrait
que la requête supprime aussi tous les
enregistrements qui y sont reliés directement et
indirectement. Dans l'exemple, la requête devra
D'aprés moi, il n'est pas possible de faire des itérations avec des requêtes! Forget it! Ton problème est un problème classique de parcours d'arbre dans lequel on ne sait pas à priori combien il y a de niveaux de ramification à explorer. Le souci est que pour supprimer une branche, tu dois supprimer également toutes les ramifications qui en découlent (OK?).
Il faut écrire une procédure VBA itérative qui va supprimer tous les 'fils' du niveau (n) qu'on lui indique (comme paramètre lors de l'appel), avec la structure suivante:
Chercher un par un les enregistrements pour lesquels IDLSUP correspond à n (ce sont les 'fils' de n)
a) s'il n'y en a aucun, tu peux supprimer l'enregistrement ID = n et quitter la procédure (Exit). b) pour chacun de ceux qui seront trouvés, appeler la même procédure en donnant ID comme niveau à traiter.
Lorsque ces itérations seront terminées, il restera à supprimer l'enregistrement pour lequel ID = n.
Attention 1 : mettre des sécurités ou utiliser intensivement les points d'arrêt dans le debogueur car le risque est grand de faire tourner des boucles sans fin et de se retrouver bloqué sans pouvoir reprendre la main. Attention 2 : à chaque nouvelle ramification qui appelle la même procédure, l'ordinateur doit empiler des données dans une zone qui a une limite. il y a un risque potentiel d'aboutir à un blocage s'il y a un trop grand nombre de ramifications successives.
-----Message d'origine----- Bonsoir
Je souhaiterai créer une requête récurrente dans access mais je rame.
Je souhaiterai supprimer dans une table des enregistrements qui s'appellent les uns les autres via
un champs.
Ma table ressemeble à ceci:
Id | Texte1 | IdLigneSup 1 A 0 2 B 1 3 C 1 4 D 2 5 E 4
Je souhaiterai supprimer par exemple Id=1, il faudrait que la requête supprime aussi tous les
enregistrements qui y sont reliés directement et indirectement. Dans l'exemple, la requête devra
tout supprimer.
Si vous avez une idée lumineuse je serai preneur
Merci d'avance Buddy
.
Buddy
Salut
Merci, c'est ce que je craignais. Vu la taille de l'arbre et le partage en réseau : bonjour les performances.
Bah j'vais faire avec. Buddy
"BM" a écrit dans le message de news:2e5501c3fced$0e54e800$ D'aprés moi, il n'est pas possible de faire des itérations avec des requêtes! Forget it! Ton problème est un problème classique de parcours d'arbre dans lequel on ne sait pas à priori combien il y a de niveaux de ramification à explorer. Le souci est que pour supprimer une branche, tu dois supprimer également toutes les ramifications qui en découlent (OK?).
Il faut écrire une procédure VBA itérative qui va supprimer tous les 'fils' du niveau (n) qu'on lui indique (comme paramètre lors de l'appel), avec la structure suivante:
Chercher un par un les enregistrements pour lesquels IDLSUP correspond à n (ce sont les 'fils' de n)
a) s'il n'y en a aucun, tu peux supprimer l'enregistrement ID = n et quitter la procédure (Exit). b) pour chacun de ceux qui seront trouvés, appeler la même procédure en donnant ID comme niveau à traiter.
Lorsque ces itérations seront terminées, il restera à supprimer l'enregistrement pour lequel ID = n.
Attention 1 : mettre des sécurités ou utiliser intensivement les points d'arrêt dans le debogueur car le risque est grand de faire tourner des boucles sans fin et de se retrouver bloqué sans pouvoir reprendre la main. Attention 2 : à chaque nouvelle ramification qui appelle la même procédure, l'ordinateur doit empiler des données dans une zone qui a une limite. il y a un risque potentiel d'aboutir à un blocage s'il y a un trop grand nombre de ramifications successives.
-----Message d'origine----- Bonsoir
Je souhaiterai créer une requête récurrente dans access mais je rame.
Je souhaiterai supprimer dans une table des enregistrements qui s'appellent les uns les autres via
un champs.
Ma table ressemeble à ceci:
Id | Texte1 | IdLigneSup 1 A 0 2 B 1 3 C 1 4 D 2 5 E 4
Je souhaiterai supprimer par exemple Id=1, il faudrait que la requête supprime aussi tous les
enregistrements qui y sont reliés directement et indirectement. Dans l'exemple, la requête devra
tout supprimer.
Si vous avez une idée lumineuse je serai preneur
Merci d'avance Buddy
.
Salut
Merci, c'est ce que je craignais.
Vu la taille de l'arbre et le partage en réseau : bonjour les performances.
Bah j'vais faire avec.
Buddy
"BM" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:2e5501c3fced$0e54e800$a001280a@phx.gbl...
D'aprés moi, il n'est pas possible de faire des itérations
avec des requêtes! Forget it!
Ton problème est un problème classique de parcours d'arbre
dans lequel on ne sait pas à priori combien il y a de
niveaux de ramification à explorer.
Le souci est que pour supprimer une branche, tu dois
supprimer également toutes les ramifications qui en
découlent (OK?).
Il faut écrire une procédure VBA itérative qui va
supprimer tous les 'fils' du niveau (n) qu'on lui indique
(comme paramètre lors de l'appel), avec la structure
suivante:
Chercher un par un les enregistrements pour lesquels
IDLSUP correspond à n (ce sont les 'fils' de n)
a) s'il n'y en a aucun, tu peux supprimer l'enregistrement
ID = n et quitter la procédure (Exit).
b) pour chacun de ceux qui seront trouvés, appeler la même
procédure en donnant ID comme niveau à traiter.
Lorsque ces itérations seront terminées, il restera à
supprimer l'enregistrement pour lequel ID = n.
Attention 1 : mettre des sécurités ou utiliser
intensivement les points d'arrêt dans le debogueur car le
risque est grand de faire tourner des boucles sans fin et
de se retrouver bloqué sans pouvoir reprendre la main.
Attention 2 : à chaque nouvelle ramification qui appelle
la même procédure, l'ordinateur doit empiler des données
dans une zone qui a une limite. il y a un risque potentiel
d'aboutir à un blocage s'il y a un trop grand nombre de
ramifications successives.
-----Message d'origine-----
Bonsoir
Je souhaiterai créer une requête récurrente dans access
mais je rame.
Je souhaiterai supprimer dans une table des
enregistrements qui s'appellent les uns les autres via
un champs.
Ma table ressemeble à ceci:
Id | Texte1 | IdLigneSup
1 A 0
2 B 1
3 C 1
4 D 2
5 E 4
Je souhaiterai supprimer par exemple Id=1, il faudrait
que la requête supprime aussi tous les
enregistrements qui y sont reliés directement et
indirectement. Dans l'exemple, la requête devra
Merci, c'est ce que je craignais. Vu la taille de l'arbre et le partage en réseau : bonjour les performances.
Bah j'vais faire avec. Buddy
"BM" a écrit dans le message de news:2e5501c3fced$0e54e800$ D'aprés moi, il n'est pas possible de faire des itérations avec des requêtes! Forget it! Ton problème est un problème classique de parcours d'arbre dans lequel on ne sait pas à priori combien il y a de niveaux de ramification à explorer. Le souci est que pour supprimer une branche, tu dois supprimer également toutes les ramifications qui en découlent (OK?).
Il faut écrire une procédure VBA itérative qui va supprimer tous les 'fils' du niveau (n) qu'on lui indique (comme paramètre lors de l'appel), avec la structure suivante:
Chercher un par un les enregistrements pour lesquels IDLSUP correspond à n (ce sont les 'fils' de n)
a) s'il n'y en a aucun, tu peux supprimer l'enregistrement ID = n et quitter la procédure (Exit). b) pour chacun de ceux qui seront trouvés, appeler la même procédure en donnant ID comme niveau à traiter.
Lorsque ces itérations seront terminées, il restera à supprimer l'enregistrement pour lequel ID = n.
Attention 1 : mettre des sécurités ou utiliser intensivement les points d'arrêt dans le debogueur car le risque est grand de faire tourner des boucles sans fin et de se retrouver bloqué sans pouvoir reprendre la main. Attention 2 : à chaque nouvelle ramification qui appelle la même procédure, l'ordinateur doit empiler des données dans une zone qui a une limite. il y a un risque potentiel d'aboutir à un blocage s'il y a un trop grand nombre de ramifications successives.
-----Message d'origine----- Bonsoir
Je souhaiterai créer une requête récurrente dans access mais je rame.
Je souhaiterai supprimer dans une table des enregistrements qui s'appellent les uns les autres via
un champs.
Ma table ressemeble à ceci:
Id | Texte1 | IdLigneSup 1 A 0 2 B 1 3 C 1 4 D 2 5 E 4
Je souhaiterai supprimer par exemple Id=1, il faudrait que la requête supprime aussi tous les
enregistrements qui y sont reliés directement et indirectement. Dans l'exemple, la requête devra