Ordenamiento de notas escolares de acuerdo al mérito

Se podrá crear un botón en un INFORME DE ACCESS que al hacerle clic ejecute una secuencia de tal forma que ordene las notas (Posición) de acuerdo al mérito de mayor a menor .Si al tener igual nota se le asigne el mismo lugar.(1,2,3,4,4,5,6,7,7) 

2 Respuestas

Respuesta
1

Agrupa por nota y así cada nota (al no haber repeticiones) tendrá una única posición que será la que se le asigne a cada nota y a igual nota, igual merito/posición.

No seria una mala practica ordenar después por nombre/apellido para mantener un orden entre iguales (es una opción a analizar).

Respuesta
1

Esto lo puede hacer con una consulta y una función. Le preparé este ejemplo

TABLA

DISEÑO DE LA CONSULTA

La consulta utiliza la función RT_NumerarParcial2SQL, cambie la tabla tblalumnos por su tabla.

RESULTADO DE LA CONSULTA

Copie esta función en un módulo 

CÓDIGO DE LA FUNCIÓN

Public Function RT_NumerarParcial2SQL(nDato) As Double
Static nCONTADOR As Long, nANTERIOR As String
Static mcuenta As Integer
     If IsNull(nDato) Then 'si nDato es nulo: Iniciamos valor
         nCONTADOR = 0
         nANTERIOR = ""
         Exit Function
     End If
     '- si nDato es igual al valor memorizado sumamos MANTENGO EL CONTADOR
     If nDato <> nANTERIOR Then
         nCONTADOR = nCONTADOR + 1
         nANTERIOR = nDato
     End If
     RT_NumerarParcial2SQL = nCONTADOR
     mcuenta = mcuenta + 1
     ' Si están todos los registros reinicio las varaibles estaticas
      If mcuenta >= DCount("*", "tblalumnos") Then
         nCONTADOR = 0
         mcuenta = 0
      End If
End Function

Cambie el la función el nombre de la tabla tblalumnos por el nombre de su tabla.

El orden de la consulta debe ser Descendente sobre el campo promedio. Acá nu hubo problema porque ya estaban ordenados por este campo.

Ok, con esta función y la consulta se ejecuta, pero ya tengo la BD completa donde el INFORME esta estructurado de esta forma, donde se colocó el Origen del control como =1 para que los numerara, pero nose, si se puede crear en este INFORME o en uno nuevo, un botón comando que, mediante una línea de código ordene 1,1,2,3,4 para este caso en particular. Gracias por su tiempo.



No sirve como lo tiene planteado (suma continua) porque Access va a numerar consecutivamente, tiene que crear una consulta como origen de datos del informe y en ésta llamar la función.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas