OVH Cloud OVH Cloud

Pb liste et enregistrement des données

3 réponses
Avatar
Rouan
Bonjour,

j'ai dans un formulaire deux liste : Categorie et Sous categorie qui me
permettent de récupérer un id (de la sous_categorie) que je stocke avec un
autre id (d'une piece) dans une table Rela_categorie_piece.

Les éléments des listes ont déjà été créés précédemment et sont stockés dans
des tables. Il y a juste un choix à effectuer.

Le pb est qu'actuellement, après avoir sélectionné la catégorie, puis la
sous_categorie, une nouvelle ligne est créé dans la table Categorie (avec la
valeur de sélection dans la liste) et une nouvelle ligne est créé dans
sous_categorie (idem). Le stockage dans la table Rela_categorie_piece
s'effectue lui correctement mais avec la valeur de l'id_sscategorie de la
nouvelle ligne.

Je veux simplement que le choix de la categorie, puis de la sous_categorie
me donne l'id_sscategorie que je stocke ensuite avec l'id de la piece dans la
table Rela_categorie_piece.

Merci d'avance pour votre aide.

3 réponses

Avatar
david
salut,

ton explication est un peu confuse, mais si j'ai bien compris :
tu as une table de 'piece' en relation avec une table de
'sous_categorie' via une table 'rela_categorie_piece'.
De plus, afin de faciliter la recherche de sous-catégorie, celles-ci
sont regroupées par catégories.

Dans ton form, tu veux :
- afficher la bonne sous-catégorie (correspondant à ce qui a
déjà été saisie)
- permettre l'utilisation d'une la liste des 'catégories', pour
simplifier la liste des 'sous-catégories' et saisir donc la valeur de
'sous-catégorie' de ta pièce.

Une petite remarque, une pièce peut-elle réellement appartenir à
plusieurs sous-catégories, sinon, la table 'rela_sous_categorie' peut
fusionner dans 'piece'.
Car l'utilisation d'une table entre deux va impliquer une relation de n
vers n entre 'piece' et 'sous_categorie'. Une pièce peut appartenir à
plusieurs sous-catégories et une sous-catégorie peut contenir
plusieurs piéces.
Dans ce cas, il est impossible d'afficher correctement cette
information avec une liste contenant une seule information selectionée
puisque la base permet d'en stocker plusieurs... Il faudra placer les
explication ci-dessous dans un sous-formulaire en mode continu...

Sinon, pour le cas d'une sous-catégorie par pièce :
il faut une liste de catégorie (lstCat) et une liste de
sous-catégorie (lstSCat).
'lstCat' est remplie avec le contenu de la table 'categorie'
'lstSCat' est remplie avec le contenu de la table 'sous_categorie' (en
entier)
'lstSCat' est lié au champ de donnée 'id_sscategorie' de la table
'rela_categorie_piece'
Cela permet d'afficher la valeur de sous-catégorie lorsque l'on entre
dans le formulaire..
Pour utiliser le filtrage par la liste de catégorie :
il faut mettre un code VBA, qui modifie la propriété 'recordSource'
de 'lstSCat' en y ajoutant la clause 'WHERE ...' de filtrage...

Voila, je pense que ça devrait tenir la route, a+, david
Avatar
Rouan
Désolé si je n'ai pas été clair.

Voici comment se présente le tout :

Table Catégorie
- id_categorie
- nom_categorie

Table SSCatégorie
- id_sscategorie
- nom_sscategorie
- id_categorie (clé étrangère)

Table RegroupSSCategorie_Piece
- id_regroup
- id_sscategorie (clé étrangère)
- id_piece (clé étrangère)

Table Pieces
- id_piece
- nom_piece

J'ai un formulaire principal qui permet de gérer les pièces. A l'intérieur
de celui-ci j'ai créer un sous-formulaire pour gérer les sous-catégories
auxquelles la piece peut appartenir.
On sélectionne la catégorie, puis la sous-catégorie. Cela pour chaque
sous-catégorie dans laquelle on souhaite placer la pièce.

Mon pb est qu'après avoir sélectionné la catégorie, puis la sous-catégorie,
les valeurs sélectionnées se créent de nouveaux dans les tables Catégorie et
Sous catégorie. Exemple :
Table Categorie avec les valeurs CAT1, CAT2, CAT3.
Table SSCategorie avec les valeurs SSCAT1 et SSCAT2 pour CAT1

Si je sélectionne CAT1, les valeurs SSCAT1 et SSCAT2 deviennent dispo dans
la liste Sous catégorie. Si je sélectionne SSCAT1, un nouvel enregistrement
est effectuée dans les tables Categorie et Sous catégorie avec les valeurs
CAT1 et SSCAT1, l'id de SSCAT1 étant utilisé dans la table Regroup pour
l'association avec l'id de la piece.

Ce que je veux c'est simplement récupérer l'id de la sous-catégorie
sélectionnée pour enregistrer le regroupement dans la table Regroup. Je ne
veux pas que de nouveaux enregistrements soient créés dans les tables
Catégorie et Sous catégorie quand je les sélectionne.

merci encore pour ton aide, en espérant avoir été plus clair.




salut,

ton explication est un peu confuse, mais si j'ai bien compris :
tu as une table de 'piece' en relation avec une table de
'sous_categorie' via une table 'rela_categorie_piece'.
De plus, afin de faciliter la recherche de sous-catégorie, celles-ci
sont regroupées par catégories.

Dans ton form, tu veux :
- afficher la bonne sous-catégorie (correspondant à ce qui a
déjà été saisie)
- permettre l'utilisation d'une la liste des 'catégories', pour
simplifier la liste des 'sous-catégories' et saisir donc la valeur de
'sous-catégorie' de ta pièce.

Une petite remarque, une pièce peut-elle réellement appartenir à
plusieurs sous-catégories, sinon, la table 'rela_sous_categorie' peut
fusionner dans 'piece'.
Car l'utilisation d'une table entre deux va impliquer une relation de n
vers n entre 'piece' et 'sous_categorie'. Une pièce peut appartenir à
plusieurs sous-catégories et une sous-catégorie peut contenir
plusieurs piéces.
Dans ce cas, il est impossible d'afficher correctement cette
information avec une liste contenant une seule information selectionée
puisque la base permet d'en stocker plusieurs... Il faudra placer les
explication ci-dessous dans un sous-formulaire en mode continu...

Sinon, pour le cas d'une sous-catégorie par pièce :
il faut une liste de catégorie (lstCat) et une liste de
sous-catégorie (lstSCat).
'lstCat' est remplie avec le contenu de la table 'categorie'
'lstSCat' est remplie avec le contenu de la table 'sous_categorie' (en
entier)
'lstSCat' est lié au champ de donnée 'id_sscategorie' de la table
'rela_categorie_piece'
Cela permet d'afficher la valeur de sous-catégorie lorsque l'on entre
dans le formulaire..
Pour utiliser le filtrage par la liste de catégorie :
il faut mettre un code VBA, qui modifie la propriété 'recordSource'
de 'lstSCat' en y ajoutant la clause 'WHERE ...' de filtrage...

Voila, je pense que ça devrait tenir la route, a+, david




Avatar
Rouan
Je peux te donner mon adresse email ou donne moi la tienne pour que je
t'envoie le fichier si tu veux voir comment se présente l'affaire.


salut,

ton explication est un peu confuse, mais si j'ai bien compris :
tu as une table de 'piece' en relation avec une table de
'sous_categorie' via une table 'rela_categorie_piece'.
De plus, afin de faciliter la recherche de sous-catégorie, celles-ci
sont regroupées par catégories.

Dans ton form, tu veux :
- afficher la bonne sous-catégorie (correspondant à ce qui a
déjà été saisie)
- permettre l'utilisation d'une la liste des 'catégories', pour
simplifier la liste des 'sous-catégories' et saisir donc la valeur de
'sous-catégorie' de ta pièce.

Une petite remarque, une pièce peut-elle réellement appartenir à
plusieurs sous-catégories, sinon, la table 'rela_sous_categorie' peut
fusionner dans 'piece'.
Car l'utilisation d'une table entre deux va impliquer une relation de n
vers n entre 'piece' et 'sous_categorie'. Une pièce peut appartenir à
plusieurs sous-catégories et une sous-catégorie peut contenir
plusieurs piéces.
Dans ce cas, il est impossible d'afficher correctement cette
information avec une liste contenant une seule information selectionée
puisque la base permet d'en stocker plusieurs... Il faudra placer les
explication ci-dessous dans un sous-formulaire en mode continu...

Sinon, pour le cas d'une sous-catégorie par pièce :
il faut une liste de catégorie (lstCat) et une liste de
sous-catégorie (lstSCat).
'lstCat' est remplie avec le contenu de la table 'categorie'
'lstSCat' est remplie avec le contenu de la table 'sous_categorie' (en
entier)
'lstSCat' est lié au champ de donnée 'id_sscategorie' de la table
'rela_categorie_piece'
Cela permet d'afficher la valeur de sous-catégorie lorsque l'on entre
dans le formulaire..
Pour utiliser le filtrage par la liste de catégorie :
il faut mettre un code VBA, qui modifie la propriété 'recordSource'
de 'lstSCat' en y ajoutant la clause 'WHERE ...' de filtrage...

Voila, je pense que ça devrait tenir la route, a+, david