|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Bonjour,
J'ai un formulaire FmAtt et un sous formulaire FmDetailAtt et il faudrait que la table TbDetailAtt soit liée à la table TbAtt. Dans le formulaire FmDetailAtt j'ai une zone de liste zdlEtatAtt, pour l'instant cette liste est différente par ligne de la table TbdetailAtt alors que je souhaiterais qu'une sélection de la zdlEtatAtt soit unique pour la table TbDetailAtt. Merci de vos suggestion et aide Cordialement Sylvain |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Peux-tu créer une requête :
- de type mise à jour de tbDetailAtt ; - qui aurait pour effet de mettre dans le champ [IDEtatAtt], le id qui correspond à la valeur affichée dans le contrôle EtatAtt ; - pour tous les enregistrements de tbDetail actuellement affichés dans le formulaire ? Quand tu es prêt, poste le SQL de cette requête. P-S. Ajoute ..."dans un formulaire" au libellé de ta question. |
|
|
10
|
|
|
#3 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Bonjour Claude,
Serais ce ainsi ? Code :
UPDATE TbEtatAtt RIGHT JOIN TbAtt ON TbEtatAtt.IDEtatAtt = TbAtt.IDEtatAtt SET TbAtt.IDEtatAtt = "IDEtatAtt : TbEtatAtt.IDEtatAtt"; Sylvain |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Claude,
Après réflexion comme tu me l'a suggéré la zdlEtatAtt peut tout à fait être dans le FmAtt et non pas dans FmDetailAtt, c'est plus logique en fait puisque état de l'attachement est lié à l'Attachement en lui même et non pas à ses détails. Ce qui permet d'avancer • Dans TbDetailsAtt la zdtDesignation "=[Article].[column](1)" cela prend bien la valeur en relation avec zdlArticle mais n'enregistres pas les données dans TbDetailAtt comment dois-je m'y prendre pour que cette valeur soit ajoutée à la table ? • Les valeurs du coef Marche pour faire le calcul des prix, j'ai mis une zdt dans le FmAtt qui récupéré bien l'IDMarche mais comment le liéer au sous formulaire FmDetailAtt ? • Comment faire la MàJ des calculs à chaque ajout de détail ou sur changement IdMarche ? Bien à toi Sylvain |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Claude,
Cela te parrait il correcte pour le calcul de zdtTotalHM : Code :
Sylvain |
||
|
|
00
|
|
|
#6 | |||
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour Sylvain,
Désolé, la requête que tu postes, c’est n’importe quoi ! Et si tu veux savoir si ça marche, il te suffit d’essayer. Dommage qu'elle soit devenue inutile, c'était un bel exercice. Citation:
Citation:
Remarques sur ton modèle Dans tbDetailAtt, les champs Designation, Unite, TarifU sont inutiles car redondants (infos dans TbProduit). Citation:
Avant de te proposer une solution, j'aimerais comprendre le problème. |
|||
|
|
10
|
|
|
#7 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Citation:
|
|
|
|
10
|
|
|
#8 | ||||||||
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Claude,
Code :
Code :
Notre base produits se divise en deux, il y a des produits liées à un marché forfaitisé, donc pas de coef à ajouter, et d'autres produits liées à un coef selon son codeAtt le champ IDBaseTarif ds TbProduit correspond à la base tarif liée au Marché . Comme j'ai essayé de faire ds cette requête "RCalculDetail". Autre chose à savoit c'est que le coef est aussi basé sur des dates, à partir de jj/mm/aaaa coef = X et qu'entre temps il peut venir se greffer des modifications par des revues de contrats, donc le coef doit se basé sur le CodeAtt ET sur la date en vigueur Code :
Code :
Exp : Si la date de l'attachement est 28/02/2012 donc Coef = 1.24, si la date de l'attachement est 10/04/2012 alors Coef = 1.18 Mais j’espère que cela a répondu à ta question. Code :
En fait pour bien faire il ne faudrait alimenter ds la zdlArticle dans le FmDetailAtt que d'articles liés au CodeAtt, mais c'est un autre post que je ferais comme tu me la conseillé. Pour l'instant ce que je voudrais c'est que ds la TbDetailAtt je retrouve mes infos produits et le resultat du calcul de zdtTotalHM (Hors Majoration) et de zdtTotalM (Majoré) et que je puisse supprimer un article si besoin. Bien à toi, Sylvain |
||||||||
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Le principe est qu’une info se trouve à un seul endroit.
Les notions de Designation, Unite, TarifU sont dans TbProduit. Elles ne doivent donc pas être recopiées dans tbDetailAtt. Avec la jointure de idProduit dans TbDetailAtt vers idProduit dans TbProduit, tu disposes de l’info. Tu aurais intérêt à étudier et assimiler ceci avant de poursuivre : - les jointures http://mhubiche.developpez.com/Access/tutoJointures/ Sur base du même principe, il est contre nature de stocker le résultat d’une opération que l’on peut reconstituer à tout moment. Dans le cas d’espèce, dans tbDetailAtt, il suffit de stocker l’IdProduit et la quantité pour déduire les autres infos. |
|
|
10
|
|
|
#10 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Bonjour Claude,
Oui je comprends, si l'information est déjà stockée qq part dans la base nul besoin de la stocker à nouveau, les liaisons faisant le reste. Et si je comprends encore mieux c'est les requêtes qui se chargent de joindre ces informations, c'est ça ? Bien à toi, Sylvain |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour Sylvain,
Si tu as maintenant bien compris, veux-tu vérifier - que ton modèle actuel ne contient plus de redondance et de champ calculé (y compris ailleurs que dans les tables que nous avons évoquées dans cette discussion ; - que ton formulaire fmAtt fonctionne correctement (hormis les totaux zdtTotalHM et de zdtTotalM). Quand tu as terminé cette vérification, poste la base pour nous permettre de poursuivre. |
|
|
10
|
|
|
#12 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Claude,
Voici en jpeg mes tables en relations, te semblent t'elles plus correctes ? Dans TbDetailsAtt il y a tjrs "Articles", je suis pas sur pour celui-ci, faut-il aussi le supprimer de cette table ? Bien à toi, Sylvain |
|
|
00
|
|
|
#13 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Bonjour Claude,
Si tu penses que les liaisons sont enfin correctes et qu'il n'y a plus de doublons, je suis prêt à t'envoyer la base. qu'en est-il pour le doublon "Article" je dois aussi le supprimer, sur celui-ci je doute. Bien à toi, Sylvain |
|
|
00
|
|
|
#14 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour Sylvain,
Citation:
Idem dans ton formulaire, évidemment. Poste la bdd qui nous sert d'exemple avec ton formulaire modifié et qui fonctionne. |
|
|
|
10
|
|
|
#15 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Bonjour Claude,
Oui je me disais pour "Article" que logiquement il ne devrait pas être dans TbDetailAtt, je l'ai donc supprimé et ajouté IDProduit. Mais .... la zdl "Article" dans TbDetailAtt ne fonctionne plus et là je sais pas vraiment pourquoi. Le fait d'avoir supprimé le champ "Article" ? Bien à toi Sylvain |
|
|
00
|
|
|
#16 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour Sylvain,
À ce stade, tu dois absolument maîtriser ton formulaire, sauf les totaux pour lesquels nous devons encore discuter. Ton contrôle pointe-t-il sur un champ de la source ? Sans doute que non, puisque tu as sans doute supprimé ce champ. Alors, cherche un peu. |
|
|
20
|
|
|
#17 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Claude,
Bien sur qu'il ne pointe pas sur un champ source puisque je l'ai supprimé de TbDetailAtt, sur quoi d'autre puis-je le faire pointer, étant donné que la source de FmDetailAtt est TbDetailAtt et que dans cette table il n'y a plus le champs Article. Je cherche et re cherche je vois vraiment pas Claude, un indice peut être ? Bien à toi, Sylvain |
|
|
00
|
|
|
#18 |
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Bonjour Claude,
Je trouves tjrs pas ce qui fait que maintenant cela ne fonctionne plus suite à la suppression du champ Article, je remet donc ce champ car là je risque de chercher longtemps sans rien trouver Claude. Ce serait certainement un bon exercice mais sans un petit indice je risque de chercher en rond je ne vois vraiment pas ce qui bloque, faut il que je change la TbDetailAtt comme source par une requête ? Bien à toi, cordialement |
|
|
00
|
|
|
#19 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour Sylvain,
Conseil : vide le contenu actuel de la table TbDetailAtt, car comme tu as modifié la structure, le champ idProduit est null. Cela risque de te perturber inutilement. ------------------ Dans fmDetailAtt pourquoi la propriété Modif autorisée est-elle égale à non ? ------------------ À propos de la zone de liste « Article » Elle doit avoir comme source contrôle idProduit, puisque c’est ce champ que tu veux alimenter. Il faut donc que cette donnée soit disponible dans les colonnes de la requête qui sert de contenu à ta zone de liste. Y est-elle ? Sinon, il faut l’ajouter. N’oublie pas que c’est cette colonne qui doit être liée à la source. Si tu changes l’ordre des colonnes, n’oublie pas que d’autres contrôles de ton formulaire font référence aux colonnes. Revois systématiquement les propriétés actuelles de cette zone de liste (avec la touche F1) et prends le temps de comprendre. Reviens quand ton formulaire fmAtt te permet de compléter la table TbDetailAtt. ------------- P-S. D’où vient « Câble », l’utilisateur doit l’encoder ? Ne faut-il pas une zone de liste ? Courage. |
|
|
10
|
|
|
#20 | ||
|
Membre régulier
![]() Sylvain Technico - Administratif Inscription : août 2008 Messages : 382 ![]() |
Bonsoir Claude,
Code :
L'ordre des colonnes est resté le même la nouvelle est à la fin. Tu a commencé avec =[Article].[column](1), pourquoi 1 alors qu'elle est en 2? Faut il considérer Article comme la colonne 0 ? Code :
P-S. D’où vient « Câble », l’utilisateur doit l’encoder ? Ne faut-il pas une zone de liste ? Le FmDetailAtt fonctionne, sauf que en ajoutant une nouvelle ligne si je la valeur de nouvelle zdl me le change tout partout Qu'est ce que cela peut être ? J'ai remarqué 2 Macros liées à la zdl à quoi correspondent t'elles ? Bien à toi Sylvain |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com