Consulta sumar dependiendo de un valor

En una consulta se me calcula un campo NOTA, pues bien quiero que ese campo solo se calcule cuando otro campo IND tiene un valor 0.(IND es una expresión creada en la consulta).

Si esto no se puede, como llevaría el campo NOTA a un formulario donde estarían las diferentes personas y ha cada una se le ponga su NOTA(Si es con un botón el que hago esto mejor ;)) También se podría hacer si lo de la consulta no se puede que al dar al botón solo me "cargue las NOTA si el IND de la consulta es 0?

1 respuesta

Respuesta
1

Tu pregunta es un tanto confusa. A ver si te he entendido bien.

En tu consulta calcula el campo NOTA, independientemente del valor de IND

Ahora añade, en una columna vacía, la siguiente expresión:

NOTAOK: Iif(IND=0;NOTA;"")

Y trabajas sobre el campo calculado NOTAOK para realizar las operaciones que quieras.

Si te molesta que te aparezcan los cálculos intermedios lo que puedes hacer es crear un nueva consulta sobre la consulta anterior y seleccionar sólo los campos de trabajo, y trabajar a partir de ahí con esta segunda consulta.

A ver si era lo que querías.

Gracias era lo que necesitaba lo de NOTAOK.

Ahora lo que quería decir es que desde un formulario donde tengo los campos alumnos y notas, poner un botón de manera que al pulsarle se cargue la NOTAOK en la nota de cada uno.

Lo que estás pidiendo no me parece que tenga mucho sentido. Créate el formulario sobre esa consulta y ya tendrás la información, sin necesidad de cargar nada.

Y si no lo que tendrás que hacer es crearte una consulta que te reúna las tablas y/o las consultas, las relacionas por el campo que te sirva de relación, y sobre esa nueva consulta creas el formulario.

Poca cosa más te puedo decir porque no sé cómo lo tienes estructurado.

Es verdad me había liado yo solo.

Una última duda como pondría en un a consulta que un campo OBSERVACIONES me escribiese "FALTAN NOTAS" cuando el IND=0 y sino que escriba "-"(un guión o nada)

Vamos a ver. Con lo que planteas hay dos opciones posibles:

La primera es que el valor NO se guarde en el campo observaciones. Esta opción te sería práctica si en el campo OBSERVACIONES sólo quieres registrar los valores que me comentas (y ninguno más, salvo que lo quieras cambiar cada vez en la ejecución de la propia consulta). En ese caso, no necesitas ni siquiera el campo en la tabla, dado que lo crearás en la propia consulta.

Si fuera así en la consulta, en una columna vacía, escribes:

Obs: Iif(Ind=0;"FALTAN NOTAS";"-")

La segunda opción es que quieras que el valor se guarde en el campo de la tabla. En ese caso debes realizar, antes de ejecutar la consulta o bien de abrir el formulario, una actualización de datos para, precisamente, actualizar los valores del campo OBSERVACIONES.

Para hacer eso te creas una consulta sobre la tabla que contenga el valor de IND y el campo OBSERVACIONES, y arrastras el campo OBSERVACIONES al grid de la consulta. Conviertes esa consulta en una consulta de actualización de datos, con lo cual te aparecerá, en el grid, una línea más que pone "Actualizar a", y ahí, en esa nueva línea, escribes

Iif(Ind=0;"FALTAN NOTAS";"-")

Al ejecutarla se te actualizarán los valores de OBSERVACIONES y después, una vez ya actualizados, puedes seguir con el proceso.

Si esos campos no estuvieran en la misma tabla la cosa se complica bastante puesto que la actualización debería realizarse a través de código VBA.

¡Gracias! 

Espero que me ayudes con esto.

Tengo ese formulario y quiero hacer que al darle a la lista se vayan agregando los módulos debajo, pero sólo pueden sumar 6 créditos en total(el campo créd va diciendo cuanto vale cada uno).

Y además de esto a la hora de elegir la combinación depende del campo Tipo y solo puede ser:

H+H+V

H+V+V

I+V

Las H y las V valen 2 y la I vale 4 de ahi esa combinaciones

Espero puedas ayudarme.

Un saludo y gracias!

Lamento comentarte que el hilo es sólo para una consulta. Esto no puede convertirse en una "asesoría personalizada" de tu aplicación.

Te ruego pues que lances tu consulta como una nueva pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas