|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juin 2006 Messages : 12 ![]() |
Bonjour,
je voudrais créer une zone déroulante "conditionnelle" dans un formulaire par programme. dans un formulaire, je dois saisir un nom de commune et un code postal. J'ai par défaut pour le champ commune une liste déroulante avec tous les noms de communes du département souhaité, saisi préalablment. Je veux, quand je saisis le code postal, que le nom de la commune s'affiche automatiquement ( ça c'est fait), mais aussi que la liste des communes se restreigne à celle qui correspond au code postal saisi. Par exemple : je saisis 75012, "PARIS 12" s'affiche. Ca marche, il n'y a qu'une seule commune qui a 75012 pour code postal je saisis "77000", ce n'est pas "MELUN" qui s'affiche mais "LIVRY SUR SEINE", et il y a 4 communes qui ont pour code postal 77000. Je voudrais, quand je saisis 77000, que la zone déroulante du champ commune se restreigne aux 4 communes, et ne comportent pas les noms de communes de tout le département. Voici mon programme pour l'instant, qui permet juste d"afficher automatiquement la 1ere commune dans l'ordre alphabétique dans le champs commune: Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
Dans cette discussion, vois le formulaire Client, dans le fichier en pièce jointe. Il y a exactement ce que tu essaies de faire. Intéresse-toi au code associé à l'événement "Après mise à jour" des zones de liste. |
|
|
00
|
|
|
#3 |
![]() ![]() |
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!. Tutoriels sur:http://jdgayot.developpez.com Pas de sujets techniques par Mp. Sinon
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 12 ![]() |
Merci beaucoup pour votre aide. J'ai presque réussi à obtenir le résultat que je cherchais. Il y a encore un truc qui ne fonctionne pas:
si je saisis le code postal 77000 (melun + 3 autres communes), j'ai bien la liste des 4 communes correspondant à ce code postal. Si je change d'avis, et que je saisis comme nom de commune "MEAUX" par exemple, le code postal change automatqiuement et devient 77100. Et là j'ai un souci: le code postal a donc bien changé, mais la liste déroulante reste bloquée à la liste des communes correspondant au cp 77000. Elle ne prend pas en compte le changement de code postal. Intuitivement (car pour l'instant le vba c'est très intuitif pour moi...) j'ai voulu introduire une procédure "Private Sub CP_Change()" en reprenant le corp de ma procédure "Private Sub CP_AfterUpdate()" mais ça bugue... |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
J'ignore la piste suivie.
Et on manque de détail pour t'aider. Pour provoquer la réactualisation d'une liste, utilise ce code : |
|
|
00
|
|
|
#6 | ||||
|
Invité de passage
![]() Inscription : juin 2006 Messages : 12 ![]() |
L'objectif est de pouvoir saisir ou le nom de la commune (et dans ce cas le code postal s'affiche automatiquement) ou le code postal (et dans ce cas la liste des commune correspndantes s'affichent automatiquement). Ca marche bien sauf dans un cas :
1) je saisis le code postal, la liste déroulantes des communes concernées s'affichent. par exemple, je tape "93200" 2) je sélectionne le nom de la commune voulue: "SAINT DENIS" jusque là tout va bien mais si je décide de saisir un nouveau nom de commune, par exemple "BOBIGNY" et que je passe à la case cp avec la touche tabulation, le code postal change ("93000" s'affiche) MAIS la liste déroulante des communes reste bloqué à "SAINT DENIS", ma procédure codepostal_AfterUpdate ne tourne pas(cf l'image "commune" envoyée en PJ) Pour que la bonne liste apparaisse, il faut que j'efface le code postal et que je le resaisisse. voici mon pgm Code :
Code :
|
||||
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Peux-tu poster la table des communes que tu utilises.
Je te ferai alors un exemple et expliquant la méthode suivie. (je dispose de Access2000). |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 12 ![]() |
merci de ta proposition. Je te poste ma base commune avec mon formulaire abrégé.
Je ne sais pas si j'ai été très clair. ce qui ne marche pas avec un exemple concret tu vas sur le champ cp tu tapes 77000 tu choisis ta commune, melun par exemple tu ressaisis ta commune parce que tu t'aperçois que tu t'es trompé, meaux par exemple le cp change et devient 77100 mais la liste déroulante reste bloquée au 4 communes correpondantes au code 77000. |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
Vois les quatre requêtes - R01TousCP : affiche toutes les CP qui ont comme département la valeur affichée dans dptinter (tous les CP si dptinter a la valeur null) ; - R02ToutesCommunes : affiche toutes les communes qui ont comme département la valeur affichée dans dptinter (toutes les communes si dptinter a la valeur null) ; - R03CPdelaCommune : affiche le CP qui correspond à la commune affichée dans commune ; - R04CommunesDuCP : affiche toutes les communes qui ont CP celui affiché dans CP. Principe : En fonction des événements, la source des zones de liste est adaptée. 1. À l’ouverture du formulaire : la propriété Contenu de CP => R01TousCP ; la propriété Contenu de commune => R02ToutesCommunes. 2. Si dptinter est mis à jour : la propriété Contenu de CP => R01TousCP ; la propriété Contenu de commune => R02ToutesCommunes ; et Requery pour adapter à la nouvelle valeur de dptinter. 3. si commune est mise à jour : la propriété Contenu de CP => R03CPdelaCommune (1 seul élément). 4. si CP est mis à jour : la propriété Contenu de commune => R04CommunesDuCP (on adapte d’office si un seul choix). Un double-clic sur commune ou CP rétablit la liste complète. Reviens-moi si problème de compréhension. |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 12 ![]() |
merci beaucoup. Ca a l'air de bien fonctionner. J'ai juste fait un petit changement : pour les champs commune et cp du formulaire, j'ai mis "non" à "limité à la liste" dans l'onglet "données" de la fen^tre prpriété.
Je vais maintenant me plonger dedans pour bien comprendre ce que tu as fait. Merci encore. Juste une petite question sur le vba: c'est quoi la différence entre MAJ, modification et chagement dans les procédures évenementielles? sur l'aide en ligne de access, j'ai pas vraiment saisi les nuances... |
|
|
00
|
|
|
#11 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Citation:
Sur changement et Après mise à jour, c'est au niveau contrôle. Pour comprendre la différence entre les deux : associe l'émission d'un message à ces événements et tu vas comprendre. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com