Formulaire enregistrement liste déroulante; les champ liés ....

Résolu/Fermé
esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 - 21 févr. 2013 à 16:06
 tessel75 - 27 févr. 2013 à 23:22
Bonjour,

Je monte présentement une base de données (Access 2010) pour du développement de mélange de béton.

J'ai un formulaire (formulaire1) dans lequel il y a une liste déroulante (listCiment), je sélectionne l'élément dans ma liste déroulante, et ensuite le champ suivant (txtDensité) affiche la valeur correspondante de densité au type de ciment issu d'une table (tCiment). Plusieurs champ calculés en découlent par la suite dans le formulaire.

Mon problème est lors de l'enregistrement des données dans ma table (tEssai).

Le ciment dans ma liste déroulante est enregistrée dans tEssai. Lorsque je récupère mon enregistrement, la liste déroulante affiche le bon ciment, mais il n'y a rien dans mon champ "txtDensite" à moins que je ne resélectionne le ciment dans ma liste déroulante, alors tout se met en place. Comme si lorsque je récupère mon enregistrement, la liste déroulante se considère vide même si le bon ciment est affiché dans le champ. Pourtant, lors de la saisie, tout se fait bien.

Je voudrais donc que lorsque je récupère mon enregistrement, je n'ai pas à resélectionner le type de ciment pour que tout fonctionne. Quelqu'un peut m'éclairer svp?


Un énorme merci à l'avance


8 réponses

esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 1
22 févr. 2013 à 17:14
Bonjour Castours,

voici le lien pour télécharger ma base de données. Dans mon exemple, listCiment = listLiant. Elle est loin d'être terminé et il y a des éléments en cours de construction mais j'attends de régler ce problème avant de poursuivre.


http://ww11.packupload.com/T3O6XN5PVVE


Merci beaucoup
1
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
22 févr. 2013 à 19:12
Bonjour
Avec Cjoint c'est plus facile
Tu compresse en zip et tu fais le lien cjoint
0
esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 1
22 févr. 2013 à 19:23
Bonjour,

effectivement c'est plus simple,

voici le lien

https://www.cjoint.com/?3BwtwghFi4m
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
22 févr. 2013 à 21:40
J'ai ouvert la base, Un chose me choque. Pourquoi tu as plusieur tables de liants?
Cela doit etre les memes.
Par contre si tu as dans la composition plusieurs liants dans une formule il faut modifier ta essai en mettant 4 champs de liants
Exemple Liant1 liant2
De plus Il faut faire une relation un a plusieur entre la table lIant et tessais
0
esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 1
22 févr. 2013 à 21:43
Bonjour,

je ne comprends pas je n'ai qu'une table de liant, une table d'adjuvant, une table de sable, une table de pierre et ma tessais qui enregistre mes résultats. Chacune de ces tables est indépendante car ce sont des ingrédients qui n'ont pas de rapport entre eux. Mes champ dans mon formulaire sont Liant 1 liant 2 liant 3... tous référant à la même table.
0
esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 1
22 févr. 2013 à 21:50
Rebonjour,.

il y a aussi 4 champ de liants (liant 1 2 3 4 ) dans ma tessai...j'ai aussi 4 requêtes et 1 seul formulaire comprenant un onglet. ce n'est pas ce que tu vois?
0
esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 1
21 févr. 2013 à 16:36
Juste pour préciser davantage, j'ai simplifié la situation pour qu'elle s'explique mieux, mais beaucoup d'autres données comme txtDensite dépendent de ma liste déroulante alors je ne peux prendre l'option d'ajouter le champ txtDensite à ma table d'enregistrement de mon formulaire (ex: certains champ apparaissent conditionnellement au type de ciment sélectionné)...


Merci
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
21 févr. 2013 à 22:46
Bonjour
Tout depends comment tu as realiser tes listes deroulantes
Mets ta base sur le site avec cjoint pour comprendre
0
esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 1
21 févr. 2013 à 23:02
Bonjour

J'ai réalisé ma liste déroulante (en fait ...mes multiples listes déroulantes) avec la boîte à outil; outil zone de liste déroulante, la plupart de mes listes déroulantes sont liées à une table, dans d'autres cas, non, la plupart des liaisons, comme avec le champ txtdensite, sont liées via code vba... Je suis nouvelle sur le forum et je dois aller à un rendez-vous à l'instant, mais je vais voir demain matin (heure du québec :)) comment faire pour transférer ma base de données sur le site avec cjoint.


Un gros merci et à demain
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir,
Je suis en train de regarder ta base, et en particulier la table "T_Essais", et le formulaire "F_DeveloppementMelange".
Je ne trouve ni ton champs "txtDensite" ni le contrôle correspondant dans le formulaire.
Peux-tu nous redire à quel endroit il est. Ligne et colonne?
Remerciements
0
Bonsoir,
Il me semble que tu es loin d'avoir chercher la solution la plus simple, aussi je me permets de dire en toute modestie, vu que tu es manifestement bien plus compétent que moi, que je m'y serais pris autrement. Mais les incompétents sont aussi forcé d'imaginer des solutions plus simples plus à leur portée.

Il y 2 solutions alternatives
1) Avoir 2 formulaires, un premier comme le tien pour l'entrée et le test des compositions, le 2ème pour la lecture de la table dont la source serait une requête simple qui rependrait les liaisons entre la table principale "T_Essais" et les tables de chacun des produits de base (TLiants, TSable, Etc..) via l'index produits. L'avantage est que tu n'aurais besoin d'aucune actualisation des contrôles à chaque ouverture, et à chaque changement de composition.

2) Entré pour chacun des contrôles "txtDensite" la formule :
" =RechDom("Densité";"Liants";"[NoLiant] =[listLiant]") "
Le seul soucis de cette formule est qu'elle ne s'actualise pas spontanément et à besoin d'être "stimulée", mais il suffirait d'ajouter une procédure de type "Me!txtDensite.Requery" pour chacun des contrôles pour que cela disparaisse. Ce qui de toutes façons ne serait guère plus lourd que la suite des procédures déjà écrites.

Je te laisse tester. Bon courage et Bonne suite
0
Ton formulaire tel qu'il est conçu actuellement ne peut pas fonctionner parce que les contrôles de la série "[txtDensite]" ne sont activés que par la commande "AprèsMaJ" du contrôle dont ils dépendent "[listLiant]", comme en lecture ou à l'ouverture du formulaire il n'y a pas de MiseAJour , forcément ils restent muets, et tu es obligé d'entrer une nouvelle fois le type de ciment dans le contrôle pour que la procédure attachée se déclenche et opère le calcul de "txtDensite".
En fait il faudrait que tu aies l'enchaînement de tous les calculs des "txtDensite" par une procédure collective SurActivation ,(Current) du formulaire pour que tes soucis soient réglés.
0
esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 1
25 févr. 2013 à 13:14
Bonjour Castours,

désolée du délai de réponse j'étais à la pêche sur glace toute la fin de semaine et n'avait donc pas accès à un ordinateur. Je suis extrêmement reconnaissante du temps que tu as mis sur ma base de données. J'avais besoin de ce genre de commentaires et critiques pour m'orienter, car en fait, je suis nouvelle sur Access et ça fait seulement 2 semaines que je travaille dessus pour ma base de données. J'ai fait le principal de ma programmation en VB en consultant des forums, ce qui peut expliquer le fait que j'ai pris plusieurs détours et que je me suis compliqué la vie un petit peu :). Je prends en note tous tes conseils et travaille là-dessus aujourd'hui. Je te redonne des nouvelles sous peu.
0
esylvestre Messages postés 11 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 27 février 2013 1
27 févr. 2013 à 21:51
Bonjour Castours et Tessel75,

désolée Tessel75, dans mon dernier post je ne t'ai pas remercié pour le temps mis dans ma base de données car j'ai regardé vite et je croyais que toutes les réponses provenaient de Castours. Alors un énorme merci car j'ai continué à avancer pas mal cette semaine grâce à vos conseils.


Alors voilà le topo.
J'ai arrangé mes relations dans mes tables, j'ai distingué mes champ densité, j'ai mis tous mes calculs sous une procédure "sur activation". À ce moment ça fonctionne pour passer d'un enregistrement à l'autre tous les calculs sont conservés, j'ai maintenant quelques soucis en ce qui a trait à la saisie de nouveau enregistrement, et je vois qu'effectivement avec 2 formulaires, ça irait mieux. J'ai encore du ménage et une refonte à faire dans tout ça mais pour l'instant mon trouble est résolu.
0
A la bonne heure si tu avances bien!
Bonjour, ou déjà Bonsoir, la Québecoise, (Mes neveux sont tes voisins)
Très honnêtement, je crois que tes procédures de calcul des champs sont bien compliqués pour pas grand-chose. Je ne connait rien d'autre que Access en BdD, mais je peux te dire qu'ici tu n'as pas du tout besoin de définir ta base à chaque déclenchement de procédure, pour tes calculs "AprèsMiseAJour", il te suffit d'écrire dans les PrivateSub : "ChampDensite = xxxxx"
Ce qui est bien plus léger que tout le descriptif qui est actuellement.
En même temps, quand je disais que tu devais créer une procédure "SurActivation" c'était un pis-aller, parce que si tu te décides pour un 2ème formulaire de lecture, solution que je préconise, tu n'as plus besoin de cette procédure, et en saisie sur ton formulaire actuel les champs fonctionnent comme tu le souhaites.
Bonne suite
0