Francesc, ahora que veo el resultado que buscas (ordenar los campos por sus valores) y no el que das a entender con tu pregunta (ordenar los registros de la consulta), mucho me temo que tiene "difícil" solución.
En la consulta no vas a conseguir nada usando los criterios de ordenación (lo mismo que en el informe), pues esos criterios lo que hacen es ordenar los registros de un mismo campo, no los campos entre sí.
Se me ocurre que hagas una consulta de unión sobre tu consulta de totales (obviamente hablo sin conocer en detalle toda tu BD y si te servirá para lo que quieres), de esta forma (en vista SQL):
SELECT "NombreLiteralCurso1" As Curso, Expr1 AS Valor FROM NombreConsulta
UNION ALL
SELECT "NombreLiteralCurso2" As Curso, Expr2 AS Valor FROM NombreConsulta
UNION ALL
SELECT "NombreLiteralCurso3" As Curso, Expr3 AS Valor FROM NombreConsulta
...
ORDER BY Valor DESC;
Donde NombreLiteralCursoX será el nombre que quieras, que identificará el curso (o lo que sea), Curso el nombre para el primer campo de la nueva consulta, ExprX es el nombre de cada campo de tu consulta y Valor el nombre para el campo del segundo campo de la nueva consulta.
Esta consulta te devolverá los cursos con su valor, ordenados de mayor a menor. Tendrás que ver si te sirve ara tu informe.
La otra alternativa (en caso de ser factible) sería programar el informe para que antes de mostrarse se "reconfiguren" los cuadros de texto de acuerdo a sus valores.