Bonjour,
Envoyé par
Jerome_Hej
Je suppose donc comme ci-avant que tout est dans la même table et pour chaque enregistrement
- une colonne Clé,
- une colonne Libellé
- une colonne Clé parente qui a lien avec la colonne Clé de la même table mais sans pouvoir choisir la catégorie en cours de modification (une sous-cat ne peut pas avoir comme parent elle-même).
C'est l'idée, voir ici avec une histoire de groupes et sous-groupes.
Envoyé par
Jerome_Hej
Voici mon idée : le chiffre dans la colonne niveau peut devenir un multiplicateur du nombre d'espaces avant le libellé.
L'idée me semble bien, et si tu n'as que quelques niveaux, tu peux calculer le niveau avec quelques requêtes :
SELECT idCategorie FROM Categorie WHERE idCategorie is Null
Donne les catégories de niveau 0
1 2 3
| SELECT Categorie.idCategorie
FROM Categorie AS Categorie_1 INNER JOIN Categorie ON Categorie_1.idCategorie = Categorie.idCategorieParent
WHERE Categorie_1.idCategorieParent Is Null; |
Donne les catégories qui ont un parent, mais pas de grand-parent, soit de niveau 1
1 2 3 4 5
| SELECT Categorie.idCategorie
FROM Categorie AS Categorie_2 INNER JOIN
(Categorie AS Categorie_1 INNER JOIN Categorie ON Categorie_1.idCategorie = Categorie.idCategorieParent)
ON Categorie_2.idCategorie = Categorie_1.idCategorieParent
WHERE Categorie_2.idCategorieParent) Is Null; |
Donne les catégories qui ont un parent et un grand-parent mais pas d'arrière grand-parent, soit de niveau 2
Etc. mais ça devient vite lourd
Sinon c'est du VBA, on doit même pouvoir faire ça de façon récursive...
Partager