Si-alors, Note-mention en Access

Fermé
davef - Modifié par davef le 24/01/2012 à 12:43
blux Messages postés 26678 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 février 2025 - 24 janv. 2012 à 17:34
Bonjour à tous

Je réalise un projet en Ms access et je suis face à un problème :
J'ai une table avec les notes des élèves et je voudrais affecter une mention suivant la note.
Plus précisément :
Recalé pour une note <10
Passable pour une note 10<=Note<12
AB pour une note 12<=Note<14
Bien pour une note 14<=Note<16
Passable pour une note >=16
Merci pour votre aide.



2 réponses

blux Messages postés 26678 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 février 2025 3 327
24 janv. 2012 à 14:55
Salut,

qu'entends-tu par 'affecter une mention' ?
Où veux-tu faire figurer cette information ?

NB : même avec plus de 16, on est 'passable' ? :-)
0
Merci pour ta réponse blux

En fait, j'ai une table avec (E#, C#, Note, Mention)
Je voudrais donc entrer les notes suivant le numéro etudiant (E#) et suivant le cours (C#) et je voudrais que la mention se remplisse automatiquement:
Recalé pour une note <10
Passable pour une note 10<=Note<12
AB pour une note 12<=Note<14
Bien pour une note 14<=Note<16
Tb pour une Note>=16
0
blux Messages postés 26678 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 février 2025 3 327
24 janv. 2012 à 16:08
En principe, quand on bosse en relationnel, on ne stocke pas un champ calculé (pour gagner de la place), mais on le calcule quand on en a besoin.
Si par exemple, tu veux imprimer un bulletin de notes, tu créeras une requête avec les informations qui t'intéressent et tu y ajouteras un champ calculé, dans le cas qui nous intéresse, un champ avec une cascade de iif, genre comme ça :

SELECT Table1.El, Table1.Note, IIf(note<10,"recalé",iif(note>=10 and note <12,"passable",iif(note>=12 and note <14,"AB",iif(note >=14 and note < 16,"B","TB")))) AS Mention FROM Table1;
0
Merci beaucoup pour ta réponse.
Malheureusement cette requête ne marche pas et je n'arrive pas à savoir pourquoi .

Voici ma requête :
SELECT Note.[E#], Note.Note, IIf([Note].Note<10,"recalé",IIf([Note].Note>=10 And [Note].Note<12,"passable",IIf([Note].Note>=12 And [Note].Note<14,"AB",IIf([Note].Note>=14 And [Note].Note<16,"B","TB")))) AS Mention
FROM [Note];

Et j'obtiens la table :
E# Note Mention
1 9 #Erreur
2 10 #Erreur
3 11 #Erreur
4 14 #Erreur
5 16 #Erreur

Si tu peux encore un tout petit peu m'aider, ça serait vraiment cool.
Je cherche vraiment depuis que tu m'as répondu !
0
blux Messages postés 26678 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 février 2025 3 327
24 janv. 2012 à 17:22
Je ne vois pas où ça coince, essaie de simplifier la requête pour voir si le iif pose problème :

SELECT note, iif(note>10,"Ok","KO") from note;
0
Je ne sais pas non plus ce qui cloche. J'ai fait ce que tu m'as dit mais ça ne marche toujours pas...
Merci quand même pour ton aide !
0
C'est bon j'ai réussi, Merci merci merci !!!!!
0