Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Insérer depuis une requête dans une table

8 views
Skip to first unread message

youssefalaouia

unread,
Oct 5, 2019, 6:43:57 PM10/5/19
to
Bonjour,
j'ai une table T_Notes :
(ID_Notes,ID_Candidat,Matiere,Moyval,Classement).
pour calculer le rang des moyennes j'ai crée une requête ;R_Rang:
Classement: CpteDom("*";"R_Notes";"[Moyval]>" & Remplacer([Moyval];",";".") & "
AND [Matiere]='" & [Matiere] & "'")+1
je me lance dans le SQL dans vba mais j'ai du mal comprendre la syntaxe pour
copier le champ Classement calculé (R_Rang) dans le champ(Classement) de la
table T_Notes .
Merci pour toute réponse.

Michel__D

unread,
Oct 6, 2019, 6:23:28 AM10/6/19
to
Bonjour,
"R_Notes" (dans ta requête R_Rang) correspond à quoi ?

Après la nécessité de stocker le résultat d'un champ calculé est discutable.

Sinon pour mettre à jour une table :
https://support.office.com/fr-fr/article/cr%C3%A9er-et-ex%C3%A9cuter-une-requ%C3%AAte-mise-%C3%A0-jour-9dddc97c-f17d-43f4-a729-35e5ee1e0514

youssefalaouia

unread,
Oct 6, 2019, 7:19:09 AM10/6/19
to
Le dimanche 06 Octobre 2019 à 12:23 par Michel__D :
Bonjour;
je suis désolé Mr Michel__D ; j'ai essayé de résumer mon travail pour ne pas
donner plus de détails cause d' alourdir ma question,alors que non,
je m'explique dans ma table j'ai un champ moyenne (texte court) (que je n'ai pas
déclaré ) ou je stock des notes des absent des exclus)
alors pour calculer le rang j'ai crée une requête qui transforme ce champ en
numérique nommé : R_Notes:basée sur la table T_Notes
Moyval:
CDbl(VraiFaux([Moyenne]="exclu";-2;VraiFaux([Moyenne]="absent";-1;[Moyenne])))
et enfin pour calculer le rang une requête nommée R_Rang
classement : CpteDom("*";"R_Notes";"[Moyval]>" & Remplacer([Moyval];",";".") & "
AND [Matiere]='" & [Matiere] & "'")+1
Alors tous simplement je cherche à copier le résultat du classement dans la
table T_Notes.
je m'excuse j'au du être claire depuis le début..

Michel__D

unread,
Oct 7, 2019, 12:59:33 PM10/7/19
to
Bonjour,
Non, il ne faut pas copier le résultat dans une table, par contre tu peux (ré)utiliser la requête
suivante pour avoir le rang de chaque candidat par matière (mode SQL) :

SELECT T.[ID_Notes], T.[ID_Candidat], T.Matiere, T.Moyval, Count(T1.Moyval) AS Classement
FROM T_Notes AS T INNER JOIN T_Notes AS T1 ON (T.Matiere=T1.Matiere) AND (T.Moyval<=T1.Moyval)
GROUP BY T.[ID_Notes], T.[ID_Candidat], T.Matiere, T.Moyval
ORDER BY T.Matiere DESC , T.Moyval DESC;
0 new messages