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

Conseil pour creation de tables

10 réponses
Avatar
Valérie
Bonjour à tous,
J'aurais besoin de vos avis d'experts pour creer quelques tables. Pour
résumer le problème : je vais avoir un groupe qui lui meme possede des "sous
groupes" et ceux ci ont des "sous sous groupes". A ce niveau la je dois
enregistrer une donnée (une quantité par exemple). Puis je vais choisir un
"sous sous groupe" et je vais alors avoir la liste des "sous sous sous
groupes" ou je vais à nouveau enregistrer des donnees au niveau de chaque
"sous sous sous groupe". Et ainsi de suite jusqu'au niveau final des "sous
sous sous sous sous groupes". Suis je claire ?!
Dois je procéder comme avec une entete de commande et des lignes de
commandes et donc des sous lignes etc .... en identifiant à chaque fois mon
enregistrement par un code en numauto ?Peut on enchainer comme cela 5 tables
sans problème ?
Merci de preter attention à ma demande !

10 réponses

Avatar
Gafish
Bonjour,

Il faudrait plus de précisions sur les groupes et les sous-groupes, et sur
les données que comporte chacun.
Je pense que cela ne serve à rien que tu multiplie les tables. Car on peut
imaginer que tu descendes comme ca sur des dizaines de niveaux peut etre.
Ne connaissant pas tes données, cela ne collera peut etre pas, mais je
pencherai à ta place pour une table avec un numéro auto, et un numéro
parent. Ainsi tu pourras descendre et monter en suivant les numéros parents,
d'autant de niveau que tu le souhaite.
Exemple :

NumAuto Parent Libelle Quantité
1 Group 56
2 1 Sgroup1 45
3 2 SSgroup 23
...

Arnaud

"Valérie" a écrit dans le message de
news:cgi49v$e1i$
Bonjour à tous,
J'aurais besoin de vos avis d'experts pour creer quelques tables. Pour
résumer le problème : je vais avoir un groupe qui lui meme possede des
"sous

groupes" et ceux ci ont des "sous sous groupes". A ce niveau la je dois
enregistrer une donnée (une quantité par exemple). Puis je vais choisir un
"sous sous groupe" et je vais alors avoir la liste des "sous sous sous
groupes" ou je vais à nouveau enregistrer des donnees au niveau de chaque
"sous sous sous groupe". Et ainsi de suite jusqu'au niveau final des "sous
sous sous sous sous groupes". Suis je claire ?!
Dois je procéder comme avec une entete de commande et des lignes de
commandes et donc des sous lignes etc .... en identifiant à chaque fois
mon

enregistrement par un code en numauto ?Peut on enchainer comme cela 5
tables

sans problème ?
Merci de preter attention à ma demande !




Avatar
Valérie
Est ce que le fait de tout enregistrer dans la meme table ne va pas me poser
de pb lorsque je vais vouloir afficher mes données dans un formulaire / sous
form ? Car bien sur quand je selectionne une groupe je veux que soient
affichés l'ensemble des sous groupes appartenant à ce groupe ?
Avatar
Gafish
Il est toujours possible d'afficher le détail du sous groupe en fonction du
groupe choisi.
Tous les membres du même sous groupe auront le même parent (dans ton exemple
le groupe que tu auras choisi). Il te suffit donc de créer une requête qui
prend comme paramètre variable le numéro du parent et qui filtre ta table en
fonction de ce numéro. Cette requête sera alors à mettre en source de ton
sous formulaire.
Sinon si tu connais le VBA tu peux aussi t'en sortir. Tu peux même faire une
fonction récursive qui va descendre ou remonter tous les niveaux.

"Valérie" a écrit dans le message de
news:cgi6uj$l5g$
Est ce que le fait de tout enregistrer dans la meme table ne va pas me
poser

de pb lorsque je vais vouloir afficher mes données dans un formulaire /
sous

form ? Car bien sur quand je selectionne une groupe je veux que soient
affichés l'ensemble des sous groupes appartenant à ce groupe ?




Avatar
Yann
Salut,
Cette organisation de données a l'avantage de pouvoir
avoir des éléments appartenant à 1 groupe comme à un sous
groupe ou un sousous groupe.

C'est ce que j'aurai conseillé également...

Bye
Yann

-----Message d'origine-----
Bonjour,

Il faudrait plus de précisions sur les groupes et les
sous-groupes, et sur

les données que comporte chacun.
Je pense que cela ne serve à rien que tu multiplie les
tables. Car on peut

imaginer que tu descendes comme ca sur des dizaines de
niveaux peut etre.

Ne connaissant pas tes données, cela ne collera peut
etre pas, mais je

pencherai à ta place pour une table avec un numéro auto,
et un numéro

parent. Ainsi tu pourras descendre et monter en suivant
les numéros parents,

d'autant de niveau que tu le souhaite.
Exemple :

NumAuto Parent Libelle Quantité
1 Group 56
2 1 Sgroup1 45
3 2 SSgroup 23
....

Arnaud

"Valérie" a écrit dans le message
de

news:cgi49v$e1i$
Bonjour à tous,
J'aurais besoin de vos avis d'experts pour creer
quelques tables. Pour


résumer le problème : je vais avoir un groupe qui lui
meme possede des


"sous
groupes" et ceux ci ont des "sous sous groupes". A ce
niveau la je dois


enregistrer une donnée (une quantité par exemple).
Puis je vais choisir un


"sous sous groupe" et je vais alors avoir la liste
des "sous sous sous


groupes" ou je vais à nouveau enregistrer des donnees
au niveau de chaque


"sous sous sous groupe". Et ainsi de suite jusqu'au
niveau final des "sous


sous sous sous sous groupes". Suis je claire ?!
Dois je procéder comme avec une entete de commande et
des lignes de


commandes et donc des sous lignes etc .... en
identifiant à chaque fois


mon
enregistrement par un code en numauto ?Peut on
enchainer comme cela 5


tables
sans problème ?
Merci de preter attention à ma demande !





.




Avatar
Valérie
Sans vouloir abuser peux tu m'en dire plus et en restant simple sur le vba
et la "fonction recursive" ? Cela se presente comment ?
Avatar
Gafish
Une fonction récursive en fait, c'est une fonction qui s'appele elle même.
Cela est très utile dans le cas que tu exposes pour plonger dans les
sous-groupe.
Tu appeles une première fois cette fonction avec le numéro d'un groupe, elle
va chercher si il y a un enfant, va s'appeler elle-même avec le numéro de
l'enfant pour voir s'il n'aurait pas de descendance... Il faut juste bien
penser au critère de fin.
Si cela t'interesse j'ai des exemples de fonction récursive, j'ai déja eu à
developper cela une fois.

"Valérie" a écrit dans le message de
news:cgi8rr$qao$
Sans vouloir abuser peux tu m'en dire plus et en restant simple sur le vba
et la "fonction recursive" ? Cela se presente comment ?




Avatar
Valérie
Cela m'interesserait d'avoir un exemple pour mieux comprendre comment cela
fonctionne. C'est possible ?
Avatar
Valérie
Autre petite question : dans ta table j'aurais 4 champs numauto, parent
,libelle, quantité. Mais je viens de m'appercevoir que au tout debut du
choix de mon groupe donc au premier niveau je declare egalement une periode
(debut et fin). Est ce à dire que je dois rajouter ces 2 champs debut et fin
dans ma table et que donc cette periode va se repeter sur chaque ligne alors
que cela n'est pas necessaire car quand j'ai choisi ma periode au debut je
ne peux pas la modifier quand je descends sur chaque niveau ? Desolée pour
toutes ces questions mais je prefere ne pas me planter des le depart !
Avatar
Gafish
Je n'ai pas la base que j'avais crée à l'époque sous la main, mais je
t'enverrai ca si tu veux sous peu. D'ici la pour te montrer le
fonctionnement (par contre je ne sais pas si tu connais le vba) :

Function ChercheSousGroupe(NumAChercher as integer) as Integer

'Ici faire une requete en fonction du NumAChercher
'Cette requête te renvoit un numéro que l'on appelera
'NumRetour par exemple
'La tu rappeles la fonction cherchesousgroupe, celle la meme dans
laquelle tu es, en lui
'passant comme paramètre le numéro retourné par la requête
ValRetour = ChercheSousGroupe(NumRetour)

End Function

Bon cet exemple est plus que short :) mais c'est pour que tu comprennes le
fonctionnement. Bien entendu, il faut ensuite gérer les recordset pour
exploiter les résultats de requête, et gérer le fait que la requête ne
renvoit rien, donc qu'il n'y a plus de sous-groupe (par exemple convenir que
si la requete renvoit 0 c'est finit, on sort).
Il faut ajouter ensuite les traitements à faire a chaque itération de la
recherche : afficher les sous-groupes, les mettre dans une table
temporaire... ?
Oui, les fonctions recursives sont possibles en Access, je ne le savais pas
non plus mais en essayant je m'étais rendu compte que oui :)

"Valérie" a écrit dans le message de
news:cgi9j9$sau$
Cela m'interesserait d'avoir un exemple pour mieux comprendre comment cela
fonctionne. C'est possible ?




Avatar
Gafish
Non, tu n'as qu'un champ numauto.
Le champ parent est renseigné par le parent justement, le libellé et la
quantité c'est de la saisie aussi.
Ensuite pour tes dates, tu ne fais une insertion de celle-ci dans ta base
que lorsque tu as besoin.
Si tu veux je pourrai essayer en fin de semaine de te faire une petite base
exemple avec des formulaires de saisie pour que tu voies comment ca pourrait
se passer.

"Valérie" a écrit dans le message de
news:cgiad4$bo1$
Autre petite question : dans ta table j'aurais 4 champs numauto, parent
,libelle, quantité. Mais je viens de m'appercevoir que au tout debut du
choix de mon groupe donc au premier niveau je declare egalement une
periode

(debut et fin). Est ce à dire que je dois rajouter ces 2 champs debut et
fin

dans ma table et que donc cette periode va se repeter sur chaque ligne
alors

que cela n'est pas necessaire car quand j'ai choisi ma periode au debut je
ne peux pas la modifier quand je descends sur chaque niveau ? Desolée pour
toutes ces questions mais je prefere ne pas me planter des le depart !