Visites

   visiteurs

   visiteurs en ligne

Sujet n°259 Petits réglages sur liste déroulante
    par roudoudou le 18/08/2009 : 15:05
Bonjour,
Je travaille depuis plusieurs semaines sur un programme de commande et devis access 2003.
J'ai réussi a récupérer pas mal d'infos pour améliorer les possibilités de mon formulaire de commande, mais je cale sur un problème de synchro.
Le formulaire est basé sur une requête. Il contient un sous formulaire également basé sur une requête.
Ils sont reliés par une liste déroulante: lorsque je sélectionne le fournisseur sur le formulaire, la liste déroulante des articles (dans le sous-formulaire en mode feuilles de données) me propose les articles de ce fournisseur.
Quand il s'agit de la 1ère commande du programme tout va bien, mais dès lors que je veux créer un 2nd commande, la liste déroulante des articles me propose la liste du fournisseur précédent, alors je clique sur n'importe quel article et là la liste du fournisseur en cours est mise à jour.
D'autre part, lorsque je crée plusieurs commandes et que je consulte les commandes précédent la dernière, la désignation des articles n'apparaît plus, seuls restent visibles les colonnes réf, prix HT, quantité, Total HT; sauf si le fournisseur de ma dernière commande à déjà fait l'objet d'une commande (bizare...)
Les procédures que j'ai utilisé sont les suivantes:
pour la désignation:
contenu : SELECT ([T-Articles].IDArticles), ([T-Articles].Designation), ([T-Articles].Reference), ([T-Articles].Fournisseur) FROM [T-Articles] WHERE ((([T-Articles].Fournisseur)=Forms![FORM-COMMANDE].IDFournisseurs));
Sur changement:  Me.Designation.Requery

Pourriez-vous m'expliquer ce qui ne va pas ?
Merci d'avance

Réponse n° 1 par 3Stone le 19/08/2009 : 00:42
Bonjour,

A lire, il me semble qu'il y a quelques problèmes de conception...


Dixit...
Le formulaire est basé sur une requête. Il contient un sous formulaire également basé sur une requête.
Ils sont reliés par une liste déroulante


Là, je ne vois vraiment pas comment on peut relier un formulaire principal et son sous-formulaire via une liste rolleyes

Ce qui relie un formulaire à son formulaire, c'est par exemple l'IdFournisseur (clé primaire) de la table fournisseur et l'IdFournisseur (clé externe) de la table fourniture.
Ou, l'IdCommande (clé primaire) de la table commandes et l'IdCommande (clé externe) de la table Commande_Details.

Je pense qu'il faudrait mettre cela bien à plat, de voir les données à gérées et leur "rangement" dans les différentes tables.
Ne sourtout pas partir d'un formulaire et tenter de créer ensuite ce qui vient "en dessous".

Cette organisation des données est primordiale et obligatoire, une lecture et l'application des reglès expliquées ici devrait y aider.

Cordialement,
Pierre(3stone)


Réponse n° 2 par roudoudou le 19/08/2009 : 15:59
Bonjour,

Je vous explique ce que j'ai fait. J'ai 4 tables:
T-Fournisseur (ID(clé prim) + nom + adresse)
T-Articles (ID(clé prim.)+ designation + ref + prix HT + IDFournisseur (clé+nom))
T-Commande (ID(clé prim.) + IDCategorie (clé+nom) + date cde + date livraison + IDFournisseur(clé+nom) + IDClient(clé+nom)
T-DetailCde (ID(clé prim.) + IDcde(clé) + IDArticles(clé+designation+ref+IDfournisseur(clé+nom)) + quantite)
Le dénominateur commun de ces tables est le fournisseur.
Les tables ont une relation un à plusieurs avec appliqué l'intégralité référencielle + cascade.

Le formulaire est fait à partir de la T-Commande
Le sous-formualire est établi à partir des T-DetailCde + T-Articles:
IDDetailCde/T-DEtailCde
IDCde/T-DetailCde
IDArticles/T-DetailCde
Ref/T-Articles
Prix HT/T-Articles
Quantite/T-DeatilCDe
Total HT:[Prix HT]*[Quantité]

Donc pouvez-vous m'expliquer ce qui cloche dans l'organistaion des tables ?

J'ai lu le tuto normalisation, j'ai essayé de créer une 3ème table pour faire une realtion +a+, mais je n'ai obtenu que des realations 1 a plusieurs et j'ai eu les mêmes problèmes qu'expliqué dans mon 1er post.

Cordialenent,
Roudoudou


Réponse n° 3 par 3Stone le 19/08/2009 : 18:45
Bonjour,


Dixit...
J'ai lu le tuto normalisation...


Oui, mais encore faut-il l'appliquer wink

Exemple:


Dixit...
T-Commande (ID(clé prim.) + IDCategorie (clé+nom) + date cde + date livraison + IDFournisseur(clé+nom) + IDClient(clé+nom)


IDCategorie: clé => ok, mais pourquoi le nom... qui devrait se retrouver dans une table des catégories (quelques soient les catégories dant il est question)
IDFournisseur: clé => ok, mais pourquoi le nom qui ne doit exister que dans la table des fournisseurs (redondance)
IDClient: clé => ok, mais le nom doit se retrouver dans la tables des clients...

Toutes ces choses doivent être organisées au niveau des tables. Saisir quelques lignes de données exemples dans ces tables et faire quelques requêtes pour voir si l'on arrive à interroger correctement et extraire les données souhaitées de ces tables.

Ensuite, on se crée les formulaires pour aider à la saisie et à la présentation.

PS: Pour obtenir une liaison plusieurs à plusieurs, il faut une table intermédiaire qui comporte au minimum les clés primaires des deux tables à relier.

Cordialement,
Pierre(3stone)

[ Retour à la liste des sujets ]

Recherche



Préférences

Se reconnecter
---

Votre nom (ou pseudo) :

Votre code secret


 Nombre de membres 1 membre


Connectés :

( personne )

Haut