Access - suma condicional en acces

 
Vista:

suma condicional en acces

Publicado por joan (4 intervenciones) el 14/02/2008 11:31:42
Tengo un formulario con asignaturas y notas. No hay problema para sacar un promedio y todas las notas son mayores que cinco o aprobadas.
Quisiera que cuando una nota es negativa (por ejemplo, inferior a cuatro) no me sacase el promedio, porque tiene el curso suspendido. ¿cómo hacerlo)
Con la función Slinm he logrado que si por ejemplo uno tiene nota final de 9 salga por ejemplo a su lado excelente.
El problema sólo es que cuando haya una nota negativa o inferior a cuatro no me saque el promedio.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:suma condicional en acces

Publicado por Victoria (1530 intervenciones) el 14/02/2008 13:12:42
Hola:

If ( nota< 4 ; "" ; nota)

Un saludo
Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma condicional en acces

Publicado por joan (4 intervenciones) el 14/02/2008 17:24:38
Gracias por tu respuesta de hoy.
Primero que soy nuevo en eso de los foros. No sé si te tenía que dirigirme a tí por medio del e-mail o desde la página web misma
Me has dado la respuesta de if (nota <4; "";nota), pero no sé exactamente en donde colocar esta orden.
El formulario en donde coloco las notas, que viene de una consulta, en la que tengo puestas todas las notas y los campos calculados para el promedio.

He intentado mirar donde incluir esta orden pero no logro ubicarla exactamente. Supongo que tendrá que ser en algún cuadro de texto del formulario,
en la propiedades de algún control.......etc.
Puedes ayudarme?
Supongo que lo que quiero entiendo debe ser fàcil:

mates 5 mates 2
sociales 8 sociales 6
naturales 10 naturales 7

Promedio 7,6 (23/3) Promedio ---- (Suman 15, pero hay una nota inferior a cuatro)

Yo sólo quiero eso, si todas son positivas (sup a 4) que salgo el promedio, si hay una o más notas inferiores a 5, que no salga el promedio
gracias por todo
juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma condicional en acces

Publicado por Victoria (1530 intervenciones) el 15/02/2008 11:47:16
Hola:

Por este medio es correcto ya que lo chequeo todos los dias, salvo fuerza mayor

Te cuento lo que has de hacer:

En la consulta, en dónde tienes puesto el promedio, es dónde has de colocarlo y de esta forma

Expr1: SiInm(Promedio([notas])<=4;"";Promedio([notas]))

Si lo escribes:

Expr1: iif(Avg([notas])<=4;"";Avg([notas]))

te lo transforma a la primera forma que te he puesto, pero, es bueno saber esta segunda forma, porque, si trabajaras con código, sería la que tendrías que usar y lo ves claramente si abres la consulta en modo SQL

Un saludo
Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma condicional en acces

Publicado por juan (4 intervenciones) el 18/02/2008 10:08:01
Gracias de nuevo por tu rápida respuesta.
Había querido simplicar la pregunta, pero es bastante más completa, según a mi me lo parece.
Se trata de colocar una notas a unos alumnos de bachillerato. La nota final es la media aritmética ponderada del producto de la nota por los créditos que representa esta nota, es decir que si a) fuese la media aritmética, la fórmula final sería:
a: (C1xN1 + C2xN2 + ...........CnxNn) / (C1+C2 + ........Cn) siendo C el número de créditos de esta nota y N la nota ´numérica.
Ahora bien, y ahí esta el problema, si en esta fórmula, hay una nota o más que sea inferior a 4, el alumno no puede aprobar, y por tanto en sus boletines NO PUEDE SALIR EL PROMEDIO, aunque para la fçormula tanto le da que sean las notas inferiores o superiores a 4. La fórmula se ejecuta siempre, es SÓLO IMPEDIR que si existe una o más notas inferiores a 4 no salgan en la media aritmética final. Que salga por ejemplo unos guiones: --
No sé si me he explicado lo suficiente.
Con los datos de tu última información, no sé cómo reflejarlo en la consulta,
quizás es algo así:
expr1: Silnm ([nota1] o [nota2] o [nota3]..........[nota n])=<4; ""; ([nota1] o [nota2] o [nota3]..........[nota n))
pero no resulta., me dice que hay errores en la expresión.
No sé trabajar con módulos.
Si puedes me das un ayudita. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma condicional en acces

Publicado por Victoria (1530 intervenciones) el 19/02/2008 14:30:23
Hola:

Ya tengo una forma de hacerlo que paso a contarte. Incluye tres consultas y has de cambiar los nombres de mis campos por los reales,

1º has de crear una consulta con los campos ALUMNO, NOTA y Agrupar poniendo la condición en el campo NOTA de: <4 (o el valor que corresponda).

Llama a esta consulta: conNoAptos

Ya tenemos a los SUSPENSOS

2º Crea otra consulta y selecciona ALUMNO y NOTA y en el criterio de ALUMNO pones:

<> (SELECT ALUMNO FROM conNoAptos)

Haz un Agrupar y pon el Promedio

3º Crea una nueva consulta de UNION entre las dos anteriores (copias la SQL de la 1ª consulta y la pegas en la ventana SQL, escribes UNION y pegas la SQL de la segunda consulta

Ya está: como resultado tienes el Promedio de las notas y NO APTO en los que tienen nota inferior a 4

Un saludo
Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma condicional en acces

Publicado por juan (4 intervenciones) el 21/02/2008 18:22:25
Gracias de nuevo Victoria
He estado intentando lo que me decías, pero no consigo nada. Mira, te explico,
cada alumno tiene, aparte de indicar el tipo de bachillerato elegido y otras cosas sin importancia, quince campos para poner sus notas: p.ej. nota1....nota2.....nota3....... y quince campos con el valor del crédito de esa asignatura: p. ej. credito1....credito2....credito3......Por tanto la tabla se compone de los siguientes campos básicamente :
nombre, apellidos, tipo btx, asignatura1, nota1, credito1, asignatura2, credito2, nota2, asignatura3, credito3, nota3...........y así, hasta 15 notas.

Cuando ejecuto la consulta de Agrupar, indicando en nota <4, me encuentro que no me salen todos los alumnos que cumplen esa condicion. Ayer lo probaba solamente con tres asignaturas y esa condición. De cinco alumnos que tendrían que cumplir esa condición, porque en alguna de las tres asignaturas tenían una nota inferior a 4, solamente me salían 2, y era debido a que solamente esos dos cumplían el criterio de tener en las tres asignaturas una nota inferior a 4. La consulta pues está mal "condicionada" digo yo. Porque en la misma fila de "criterio" ponía la condición de que en la nota sea <4 y por tanto tendría que cumplirse en alguien que efectivamente las tuviese las tres suspendidas., y no siempre será así. Cuando ponga la consulta con las quince notas, no habrá nadie que tenga las quince con un valor <4.
Había intentado de poner en la consulta dos campos nota1 o nota2, uno con la condicion agrupar y otra con la condicion Donde, pero tampoco salía.
Se me ocurrió después, dado el problema de salir solo 2 alumnos, hacer quince consultas con el agrupar para que salgan sólo los suspendidos de la nota 1, otra consulta con los suspendidos de la nota 2......pero es interminable y no sé exactamente a donde llego con eso.
Digo yo que la solución tiene que ser algo muy fácil y sencillo. Mientras todo son números mayores del 4, no hay problema, me saca la media ponderada y ya está. Se trata de que cuando tan sólo una nota sea inferior o igual a 4 no saque la media ponderada.
No he probado todavía lo de la consulta con unión porque nunca he hecho ninguna y no sé muy bien como va.
No sé si me he explicado lo suficientemente bien.
Gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma condicional en acces

Publicado por Victoria (1530 intervenciones) el 22/02/2008 12:31:18
Hola:

Mira, cada vez me das información distinta,así que, te propongo que me escribas un email y me digas EXACTAMENTE cuantos campos tienes en la tabla POR cada alumno y lo que deseas obtener, con EJEMPLO escrito incluido

Ya, ya se que aquí me dices... pero, necestio tener TODO agrupado para estudiarlo y, por supuesto, TODO se puede hacer en Access si se sabe que se quiere obtener

Espero tus noticias

Un saludo
Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:suma condicional en acces

Publicado por Victoria (1530 intervenciones) el 22/02/2008 14:25:40
Hola de nuevo:

Creo que ya he entendido lo que quieres y te he hecho un ejemplo, así que, si lo deseas, dime un email para enviártelo.

Tienes la base de datos mal diseñada, por eso vienen todos los problemas. La he reestructurado y todo sale perfectamente.

Espero tus noticias y si es posible, mejor esta tarde, porque si no, tendrá que ser ya la semana que viene

Un saludo
Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar