Valeur d'un champ texte

Fermé
danièle21 - 1 févr. 2013 à 16:34
 tessel75 - 5 févr. 2013 à 11:42
Bonjour,
je sais pas comment faire afficher dans un autre champ texte un message si le résultat d'une comparaison est vrai ou faux:
exemple:

on a entré la moyenne de l'élève dans un champ et celle nécessaire au passage dans un autre champ. je veux afficher dans un troisième champ une appréciation pour la note de l'élève. je connais la condition VraiFaux donc j'ai écrit


VraiFaux([moyenneleve]<[moyennepassage];"Repasse l'examen";"Acceptable")

dans quelle champ dois je écrire cette condition?

6 réponses

Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 590
1 févr. 2013 à 16:38
Tu dois créer une requête qui calculera le champ additionnel. Et pour le champ additionnel tu tapes ton expression dans l'éditeur d'expressions ^^
0
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 3 317
1 févr. 2013 à 16:54
Salut,

tu dois mettre cette expression à l'endroit où tu veux voir affiché son résultat.

0
merci pour vos conseils
je l'ai fait mais à chaque fois il me demande d'entrer manuellement des valeurs de moyenne de l'élève et de passage
comment écrire qu'il doit évaluer chaque moyenne d'élève en chaque matière avec la moyenne de passage de la matière concernée?
donc pour dire que l'évaluation doit être faite pour chaque valeur du champ [moyenneleve] et avec la valeur de l'enregistrement [moyennepassage]relative?
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 590
1 févr. 2013 à 17:13
moyenneeleve et moyennepassage sont bien des champs de ta table de base ? ils sont tous remplis ? pas de blancs ?
0
oui ils le sont
0
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 3 317
Modifié par blux le 1/02/2013 à 17:25
J'ai un doute : tu parles de mettre à jour un champ dans une table via une requête ou afficher une valeur que tu calcules dans un formulaire ?
0
Re Bonjour, ou plutôt Bonsoir à tous,
Je m'associe à la question de Blux. Au vrai, sur quoi travailles tu ? Une requête ou un formulaire ? J' ai du mal à te suivre. Pourtant c'est essentiel parce que les réponses seront très différentes, en effet tu peux assez facilement faire un certain nombre de calculs directement sur un formulaire, tandis que sur la table d'une requête tu devras faire un détour.
Bonne suite.
0
je travaille sur un formulaire.
je voudrais faire afficher une appréciation, il ne s'agit pas d'un calcul mais juste d'une comparaison de deux valeurs déjà renseignées dans deux tables
0
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 3 317
4 févr. 2013 à 12:49
Ne confonds pas table et formulaire.
Un formulaire peut se baser (ou non) sur une (ou plusieurs) tables. De plus, à de rares exceptions, il n'affiche qu'un seul enregistrement à la fois.
L'important est de savoir où tu pioches les informations qui vont te servir à faire le test.
0

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

Posez votre question
Bonsoir Danièle, et Blux et Bruce aussi,
Il ne faut pas te focaliser sur les expressions "Champs calculé" ou "contrôle calculé", elles ne signifient pas du tout qu'ils sont le produit de calcul au sens arithmétique mais qu'ils sont le produit d'une opération de n'importe quelle nature, y compris celle qui consiste à comparer et à choisir comme le fait la fonction "VraiFaux(A;B;C)".
En même temps, il faut être assez précis et rigoureux dans le vocabulaire à utiliser parce que sinon tout devient vite des "trucs" et des "machins" et plus personne ne sait de quoi on parle.
.
A partir de là, puisque tu opères sur un formulaire, les choses sont particulièrement simples parce que tu as la possibilité de placer des "contrôles calculés" de telle sorte qu'ils puissent te servir à des calculs intermédiaires, et en plus de les cacher.
.
Donc pour faire l'opération qu'on te demandes, tu vas créer :
1) un contrôle MoyenneClasse = MoyDom("NoteMatiere";"TableDesNotes";"[Classe] = 'NomDeLaClasse' ")
La fonction MoyDom est de la même famille que la fonction DLookUp pour laquelle tu demandais des explications, il y a 3 jours. Et comme sur ton formulaire, avec le nom de l'élève tu as créé un contrôle "Classe", tu pourras écrire ta fonction MoyDom, MoyDom("NoteMatiere";"TableDesNotes";"[Classe]=Forms!MonFormulaire!Classe")
2) De la même façon tu crées un contrôle MoyenneEleve = MoyDom("NoteMatiere";"TableDesNotes";"[Eleve]=Forms!MonFormulaire!Eleve")
Et tu remarques immédiatement que la seule différence entre les 2 est le critères de sélection, ce qui fait que si tu as bien écrit l'un, l'autre s'enchaîne tout seul.
Alternativement tu peux dés le départ créer une requête-opération qui te calcule les moyennes de chaque élève pour chaque matière; cette 2ème solution est en principe plus rapide et donc préférable à la 1ère.
3) Enfin tu peux créer ton contrôle apparent que tu pourras écrire :
Decision = VraiFaux([MoyenneEleve]>=[MoyenneClasse];"Reçu";"Repasse l'examen")

Maintenant j'espère que tu peux comprendre l'insistance de Blux et aussi moi-même à savoir si tu travailles sur un formulaire ou une requête, c'est que le formulaire te donne des possibilités que tu n'as pas avec la requête, et réciproquement. Ainsi dans cet exemple, tu peux voir qu'une requête ne te permet pas d'avoir directement la moyenne de la classe, aussi aurais-tu été obligée de passer par une requête intermédiaire qui t'aurait fait ce calcul pour pouvoir l'intégrer dans ta requête finale au même titre que n'importe quelle donnée tirée d'une table.
Si tu n'as pas tout compris dans mon long laïus, il te suffit de me retourner tes questions, .... ou bien pour moi de retourner à mes chères études (LOL).
Bonne suite
0
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 3 317
5 févr. 2013 à 09:06
Pas mieux ;-)
0
bonjour tessel75 je ne comprends pas très bien la structure de la fonction MoyDom. je comprends qu'elle me permet de calculer la moyenne mais pas tous ses paramètres.

j'ai assez bien perçu la démarche mais une autre de mes difficultés dans la réalisation est:

la comparaison n'est pas à effectuer entre la moyenne de la classe mais avec une moyenne de passage que l'utilisateur a entré dans la base.

en gros ça donne ça:

j'entre les notes de mes élèves pour chaque matière.
Chaque matière a sa moyenne de passage.

dans mon formulaire, j'ai fait ressortir les champs [matière];[élève];[moyenneelèvematière];[moyennepassagematière]

1er blocus: le formulaire ne m'affiche pas les valeurs des moyennepassagematière relative à la matière qui a été sélectionnée

si j'arrive à programmer ça ce serait un pas

ensuite, il faut que je fasse la comparaison avec le dernier code que tu m'as donné

merci déjà pour ton aide.
0
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 3 317
5 févr. 2013 à 10:26
Les fonctions de domaine (moydom, rechdom,mindom...) permettent d'obtenir des résultats uniques paramétrés via des restrictions sur ce qu'on appelle un 'domaine' (table ou requête).
La différence avec une requête est que le résultat renvoyé est TOUJOURS unique. Il permet donc de l'intégrer dans un contrôle de formulaire ou de l'utiliser en tant que 'variable'.

Dans ton cas, tu dois paramétrer le troisième paramètre pour dire que tu cherches la moyenne de la matière sélectionnée dans ton formulaire.
0
c'est donc ma grande question: comment dire que je cherche la moyenne de la matière sélectionnée?
0
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 3 317
Modifié par blux le 5/02/2013 à 10:49
Est-elle affichée quelque part, cette matière ?
Si la réponse est oui, alors tu t'inspire de ce qui t'a été donné plus haut :

MoyDom("NoteMatiere";"TableDesNotes";"[Eleve]=Forms!MonFormulaire!Eleve") 
0
Bonjour, (Je vais vite parce que je dois partir)
Je m'associe complètement à la réponse de Blux; la structure de "MoyDom " et de toutes les fonctions de la famille est :
Fonction("Champs";"DomaineOuOpererLaFonction";"CriteresDeRestriction ou DeLimitation du Domaine")
Tu paraissait avoir compris DLookUp() ou RechDom(), ce sont les mêmes, il n'y a pas de raison de ne pas comprendre "MoyDom()"
Après, le fait que la référence soit MoyenneClasse telle que j'ai définie ou bien que ce soit une note entrée extérieurement ne change rien, l'essentiel est dans le champs "[Decision]=VraiFaux(MoyEleve>=MoyNecessaire; "Decision1";"Decision2")
Bon courage à tous les 2; A ce soir;
0