|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 11 ![]() |
Bonjour
Dans le but de faire évoluer une base de donnée (de type gestion de collections ...... Initialement mono- collection que je désire faire évolué en multi-collection) et après un certain nombre de recherches je suis tombé sur un excelent Tuto "Concevoir une liste qui en alimente une autre" (http://argyronet.developpez.com/offi...ectitemlistAB/) qui décrit et correspond exactement à mes besoins. J'ai réalisé le Pas à Pas pour bien la comprendre avant d'implanter cette méthode dans ma propre base. Toutefois si la méthode est opérationnelle sur un formulaire unique, mon besoin est que "cmbCatégorie" mette à jour "cmbMetiers" qui ce trouve sur un sous-formulaire (appelé "SFMetier", le formulaire accueillant "cmbCatégorie" s'appelle quand à lui "FCatégorie") D'approche autodidacte je possède des manques dans mon approche et progresse de manière irrégulière en fonction des besoins de l'évolution des bases que je réalise. J'ai bien conscience, après un certain temps de recherche que la solution ce trouve à partir de la ligne : ...cmbMetier3.RowSource = SQL en y insérant "Forms!" .... Mais je ne suis pas arrivé à l'implanter dans cet exemple. Pourriez vous m'aider SVP. Je vous remercie d'avance de l’intérêt que vous pourrez porter à mon problème Cordialement Descriptif des éléments : Les tables : TBLCategorie (Clé primaire IDCategorie) et TBLMetier (Clé primaire IDMetier) Les listes de choix : cmbCategorie3 et cmbMetier3 Les formulaires : FCategorie et SFMetier Voici le code : Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonsoir,
Si tu peux poster un zip de ta BDD dans une version compatible avec Access2000, je veux bien t'accompagner dans ta progression. PS : Vois cette documentation Les syntaxes d'appel : Interaction des formulaires et états. (loufab) |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 11 ![]() |
Bonsoir,
avant tout merci de votre réponse .... cela fait 2 jours que je dépouille les forums (dont le lien que vous m'avez donné en PJ) et fais moultes essais totalement stériles. Je joint le fichier d'essais converti en Access2000 ...... Malheureusement ayant travaillé sur Access2007 la conversion semble ne plus rendre compatible le code. Toutefois voici le descriptif des éléments. Le formulaire "00_pas a pas" est le formulaire d'essais (et fonctionnel ... en 2007 du moins) Le formulaire "FCategorie" est le formulaire de base qui supportera le sous formulaire Le formulaire "SFMetier" est le sous-formulaire. Le code est implanté sur le menu déroulant "catégorie" du formulaire "FCategorie" / Evenement "Après MAJ" Cordialement |
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
C'était bien un problème de référencement. Voici la syntaxe de l'évènement "Àprès Mise à Jour" de cmbCategorie3 (formulaire principal) Code :
- évite les caractères spéciaux dans le nom des contrôles. À ce sujet : conventions typographiques ; - demande le compactage systématique de tes BDD lors de la fermeture Outils/Options/onglet Général : cocher la case Compacter lors de la fermeture. À la prochaine. |
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 11 ![]() |
Bonsoir
Un grand merci pour les modifications apportées au code de base ……… Il est parfaitement fonctionnel et il ne me reste plus qu’a bien le comprendre pour l’implanter correctement dans ma base. Quelques petits constats malgré tout : Lors du premier essai, le couple formulaire/sous-formulaire fonctionnait correctement. Toutefois après fermeture et ouverture (compactage réalisé) le formulaire ce bloque avec le message ci-dessous en guise d’explication. ![]() Pour contourner le problème j’ai placé une MsgBox sur l’événement « Sur chargement » du formulaire principal ce qui semble « Dégripper » le formulaire qui ne pose plus dès lors de difficulté à l’ouverture (effectivement, c'est une solution un peut biscornue). Il est a noter que ce phénomène était déjà présent sur mon « pas à pas » issue du tuto (d’où la MsgBox qui s’ouvre à chaque changement de liste Catégorie) ……… Bon, je pense que le problème doit venir de mon environnement. Un autre point qui tiens plus de l’affinage pour rendre le couple formulaire/sous-formulaire plus efficace serait de ne pas dérouler la seconde liste automatiquement mais d’appeler directement le 1er enregistrement proposé. En effet, lorsque l’on sélectionne une catégorie, la liste Métier propose des choix (c’est sa fonction après tout) ….. que l’on valide. Mais à ce moment-là les données de la table attachées au sous-formulaire ne sont pas encore chargées (on le remarque bien en surveillant le compteur d’enregistrement) et donc les données résultantes du choix sont fausses … il faut re-sélectionner une seconde fois pour enfin avoir les données adéquates. Pareillement si l’on referme la liste métier sans faire de choix et que l’on désire par la suite y faire une sélection … les données dans le menu reste visibles mais ne permettent plus de mettre à jour le sous formulaire (il faut resélectionner la catégorie pour pouvoir rendre de nouveau la liste métier opérationnelle) …… D’où mon impression qu’il serait mieux de « forcer » l’affichage du premier enregistrement que proposera la liste métier ……… A ce niveau je vais dans un premier temps essayer de trouver la solution (après tout … le plaisir du résultat se trouve en partie dans l’effort pour y parvenir.) Enfin, et cela reste à confirmer, j’ai l’impression que plus le nombre de métiers est grand dans une catégorie donnée, plus le chargement des données est long …… si cela s’avère exact ce système sera-t-il compatible avec ma base qui comprend plusieurs milliers de fiches. Voilà pour ce bilan de fin de post. Je laisse en PJ une version fonctionnelle (convertie en Access2003) de cette base d’essais pour qui voudrez s’en inspirer. Encore une fois je vous remercie pour votre aide. Cordialement. |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
Cette fois, je ne peux plus lire ta BDD jointe avec ma version Access2000. Peux-tu y remédier ? |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 11 ![]() |
Bonjour
Voila qui est fait .... j'ai remplacer l'archive dans le post ci-dessus, en y ajoutant la version 2000 ... Toutefois le constat de la première fois reste le même la conversion ne fonctionne pas avec access 2000 (du moins chez moi) mais en ouvrant sur le formulaire principal avec le Runtime 2007 le code reprend du service. |
|
|
00
|
|
|
#8 | ||||
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonsoir Breton29,
Voici un exemple avec tes données. Bien que ce n’était pas ici nécessaire, j’ai conservé la structure formulaire/sous-formulaire : occasion de te montrer la syntaxe. J’ai structuré tes données, pour éviter les redondances ![]() Ensuite, je te propose de travailler avec des requêtes enregistrées, plutôt que de les construire à la volée. Cela te permet de te faire aider par l’assistant. Les voici : ![]() Et avec cela, un minimum de code* : Dans le formulaire Code :
et dans le sous-formulaire. Code :
Pour te documenter davantage, place le curseur de souris sur un mot-clé et l’aide Access s’ouvrira à la bonne page. Reviens si problème. |
||||
|
|
20
|
|
|
#9 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 11 ![]() |
Bonjour,
Je viens de tester le code en l'adaptant à une partie de ma base et il fonctionne à merveille. .... Il répond complétement à ce que je désirai obtenir, même si je ne l'ai pas encore testé sur l'ensemble des fiches et un formulaire ne comprenant encore tout ses éléments, l’accès aux données semble resté fluide. Voilà ... il ne me reste plus qu'a reconstruire ma base pour mettre à profit vos conseils et solutions. Merci. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com