|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
Bonjour,
Je dispose , dans un formulaire existant, d'une liste déroulante dans laquelle je peux choisir soit un client particuliter (liée à une table contenant tous les noms de mes clients), soit (au même niveau) pas de client (pour pouvoir choisir un groupe) Dans une autre liste déroulante (plus bas) se trouve la liste des groupes (avec case à cocher) et le nombre d'éléments par groupe. Ex : Groupe "AA" - 14 Groupe "BGR" - 45 Groupe Blic" - 23 Encore plus bas dans mon formulaire, se trouve un champ reprenant le "nombre pour quantification" Dans ce champ, je souhaite retrouver 1 si j'ai choisi un client particulier dans ma première liste ou le nombre d'émléments si j'ai choisi un groupe (ex 45 si j'ai choisi le groupe BGR, 59 si j'ai coché AA et BGR) Est-ce possible automatiquement ? Et surtout... comment ?? Merci d'avance pour votre aide. Signé : un débutant qui progresse chaque jour en parcourant votre forum... |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
salut gsacre,
pourrais tu transmettre une image ou mieux: une petite db histoire d'être sûr du contexte? merci. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
Oui, comment dois je faire pour joindre une image (on me demande un http ou est stocké l'image)
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
icone: "Pièces jointes" et non "Insérer une image"
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
OK.
voila un printscreen : on y voit la liste déroulante "classeman". Par exemple si je coche le groupe 1C2 (avec 22 personnes) et le groupe 1C9 (avec 15 personnes), je souhaiterais que le total (donc 37) s'indique automatiquement dans la case "Nombre activ." Et que par défaut, le nombre indiqué dans cette dernière soit "1" Voilà. si je dois vous donner d'autres infos, demandez... Merci d'avance |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
ok.
quel est le type pour de la liste des groupes? requete/table/liste de valeur? cette liste est elle longue? est elle mise à jour régulièrement? |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
elle est basée sur une requete qui est liée à une table reprenant toutes les personnes et le groupe auquel elles appartiennent.
Elle est donc mise à jour en fonction de cette première liste. Donc : J'ai une table "élèves" avec les coordonnées des élèves, leur école et leur classe. Sur le formulaire (dont j'ai mis un printscreen), il y a une liste déroulante (liée à une requete) reprenant les écoles et une deuxième liste (celle dont je parlais) affichant les classes présentes dans l'école sélectionnée (dans ma première liste déroulante) ainsi que le nombre d'élèves par classe. Cette dernière liste peut contenir max 100 éléments. |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
je vois ces possibilités:
. utiliser une formule avec IIF, SWITCH, DSum... et éventuellement sur les événements maj un .Requery... . coder une fonction pour sommer la zone de liste en utilisant .Column en complément avec une formule de IIF . coder tout le calcule dans une fonction. si tu veux plus d'aide le mieux serait de fournir une petite db parce que ca risque d'être un peu long d'accorder du code avec ton contexte surtout que tu es débutant. |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
je fais comment pour te faire parvenir la bd ?
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
tu fais une copie de la base. tu supprimes le superflu. retire le contenu perso des tables. compacte si ce n'est fait pas automatiquement. t'en fais une archive compressé avec 7z, winrar...
et tu mets ca en pièce jointe dans le post. merci. |
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
Voilà. J'ai vidé la BD d'une partie de son contenu.
J'espère que cela permettra de trouver une solution. Merci de votre aide. |
|
|
00
|
|
|
#12 | ||||
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
salut gsacre,
vu que certaines fonctions (join(), ubound()...) ne sont pas reconnu dans les formules je propose de passer par l'appel d'une fonction personnalisée: le controle "Nbre élèves": avec pour code: alt+f11 dans le module "Form_new form journalier" ou un nouveau Code :
Code :
|
||||
|
|
10
|
|
|
#13 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
ps: j'ai constaté une erreur quand au changement d'école. le champ classman doit être réinitialisé ce qui n'est pas fait et conduit à des erreurs après Classeman.Requery
et à noter que [Nbre élèves] devient un champ calculé et non plus un champ stocké... à toi de voir ce qui te convient et au quel cas de sauvegarder la valeur. |
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
Merci pour cette réponse complxe.
Tu me dis que cela devient un champ calculé, cela veut dire quoi ? Que je ne peux le modifier ? Où dois je encoder les formules de ton précédent message ? |
|
|
00
|
|
|
#15 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
J'ai trouvé où l'encoder et cela fonctionne. Super grand merci
Juste qq problèmes : Si je choisi une personne "Nom" et non pas un groupe "Ecoleman" puis "Classeman", la case "Nbre activ" reste vierge. Or, je voudrais que dans ce cas, cela me comptabilise "1" Deuxième petit soucis : sur base de ce formulaire, j'avais réalisé une requete croisée calculant le nombre de chacune des activités par mois dans un tableau. Cela fonctionnait bien avant, lorsque j'encodais manuellement, mais maintenant avec la formule, il ne m'indique dans ce tableau que "1" au lieu du nombre calculé. Est il possible de modifier cela ? |
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
un champ calculé effectivement veut dire qu'on ne peut éditer seulement que la formule pas sa valeur résultante mais surtout qu'il n'est pas stocké dans une table.
pour mettre la valeur à "1" si le [nom] est null, inspire toi du code nbEleves() qui se traduit par: SI ecoleman EST NULL mettre NULL SINON SI classman EST NULL mettre "1" SINON mettre le compte d'élèves. je n'ai pas compris si cette condition et en plus ou pas, mais je ne doute pas que tu trouveras la bonne syntaxe. pour ce qui est de ta requête croisée... je pense comprendre le soucis, il doit être basé sur la valeur stocké [Nbre élèves]. il serait possible de reformuler la requête croisée pour remplacer ce champ par la formule mais cela va être compliqué pour toi. donc je suggère de stoker cette valeur dans la table comme tu l'avais fait précédemment. pour cela il faut que tu affectes la valeur du calcul dans le champ [Nbre élèves] Code :
|
||
|
|
10
|
|
|
#17 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
Merci pour toutes ces réponses, mais là, cela ne marche pas (je ne m'y prends peut être pas bien) :
J'ai donc besoin que s'inscrive dans le champ "Nbre élèves" de ma table "Journalier" le total du nombre d'élèves se trouvant dans les classes sélectionnées dans le champ "Classeman" si dans le champ "Nom" la valeur est égale à "1" (ce qui correspond à "---" et pas à un élève en particulier", si ce n'est pas le cas et que la valeur du champ "Nom" est différente de "1" alors, inscrire comme valeur dans le champ "Nbre élèves" la valeur "1" Ce qui signifie : si je choisi 1 élève => Nbre élèves = 1 Si je choisi "---" dans le champ "Nom", cela veut dire que je sélectionne un groupe et donc Nbre élèves = total des élèves contenus dans les classes sélectionnées dans le champ "classeman" Ce nombre inscrit dans le champ "Nbre élèves" de ma table "Journalier" sert dans une requète croisée. Merci bcp de ton aide Vodiem, par les réponses, je devellope ma connaissance d'access.. |
|
|
00
|
|
|
#18 | ||
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
voilà à quoi ca pourrait ressembler:
Code :
|
||
|
|
10
|
|
|
#19 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
C'est tout simplement GENIAL.
Je teste sur la base complète et te fais un retour. Merci beaucoup |
|
|
00
|
|
|
#20 |
|
Invité régulier
![]() Inscription : juin 2011 Messages : 34 ![]() |
EXXXTRA
![]() ![]() tu es formidable, c'est exactement ce que je cherchais (sans savoir si c'était possible). Vraiment un très très grand merci Cela fonctionne impeccablement et ma requete croisée fonctionne. Juste un petit soucis : Si dans mon enregistrement 1, je sélectionne un élève, cela bloque l'acces aux champs "Ecoleman" et "Classeman", ce qui est très bien puisque je ne souhaite pas que l'on choisisse un élève et une classe. Seul soucis, c'est que si je passe à l'enregistrement suivant, il semble avoir mémorisé cela et bloque donc aussi l'acces à ces champs (qui se débloquent si je clique sur le champ "nom" et sélectionne la valeur 1 (celle qui est affichée par défaut). Est-ce corrigeable ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com