Obtener resultado de una consulta haciendo cálculos

Necesito saber como realizar la siguiente operación.
En un botón de formulario, o bien en un evento "al abrir" de un informe se ejecutará una consulta que captura datos de dos tablas, obteniendo unas cantidades que ya figuran en una de las tablas. Esa consulta no hará más que aportar los datos para que se ejecute una función, es decir, no quiero que se presenten los datos de la consulta, sino que los almacene en memoria para después realizar una función.
"año nacimiento"= 1990
"año actual"= 2009
"nombre" = pepe
"edad"= 25
"estatura"= 170
"desviación"= 20
Quiero hacer una función que compare la edad y la estatura de pepe y si la desviación es mayor de un 20% (en la fórmula se dividirá la desviación entre 100 para convertirla a %) que me presente un mensaje. Cada persona puede tener una desviación diferente. La consulta seleccionará el nombre y los datos de esa persona y los años a comparar.

2 Respuestas

Respuesta
1
Lo siento no acabo de comprender tu pregunta. En principio no veo muy complicado lo que creo entender de tu cuestión, pero, a que le llamas una "función". Lo único que conozco como función se encuadra en el lenguaje de Visual Basic, (el cual controlo un poquito), pero creo que tu consulta no va por ese camino.
Si sólo estamos hablando de Access, aclarame que es lo que pretendes conseguir con los datos que entiendo ya tienes introducidos en una tabla.
Ya, es lo único que se me ocurría, hacer una función con VB y plantarla en el código del evento, pero si tu conoces otra fórmula, también me vale.
Lo que quiero es que:
Al producirse un evento POR, recorrer la tabla buscando los valores que coincidan con Pepe, y teniendo en cuenta la desviación que figura en el registro de Pepe (20), Si la estatura del 2009 supera en un 20% la estatura del 1990, saltará un mensaje de advertencia.
El 20% es una cifra variable que figura en la tabla, no lo podemos aportar a la hora de hacer la función o lo que corresponda.
Gracias por tu ayuda
Así por encima, creo que lo más fácil seria lo siguiente: Una tabla donde constase el "nombre" año de nacimiento" y "desviacion" (llemémosla natal), ya que estos datos entiendo que no cambian con posterioridad.
De esa tabla se relacionaría una segunda, donde se iría introduciendo el año actual y la desviación de ese año. Todos estos registros "colgarian" de la tabla explicada en el párrafo anterior.
Si esto fuese así, confírmamelo, porque a partir de ahí te puedo contestar con mayor criterio.
Respuesta
1
Pues crea una consulta e introduce las dos tablas.
¿La función que compara la edad y la estatura de pepe... con que se compara?
Mensaje:
If desviacion>20 Then msgbox nombre &" " & desviacion &"% supera 20% desviacion"
No puedo relacionar tablas, por lo que la consulta sería inútil, ademas ya lo he probado y no funciona. Las tablas estaban ya relacionadas y no puedo variar esa relación.
Para expresarme mejor, lo que se pretende es que al meter los años el usuario, si en vez de meter 20 mete 2000, que salte un mmensaje advirtiéndolo. Para definir a partir de que cantidad salta el mensaje, lo tiene que definir el usuario facilitando un porcentaje por cada persona a través de eun formulario que guardará ese porcentaje en una tabla para cada año.
Si las tablas están relacionadas aun entiendo menos cual es el problema
para hacer la consulta. Introduce las dos tablas en diseño de la consulta
y pon la relación apropiada en la consulta en los campos de negrita y seguidamente
llama los campos. Asegurate que los campos relación tengan el mismo tipo de datos.
En el peor de los casos, que como te digo no entiendo muy bien, haz la consulta con una sola tabla y el resto busca los registros con función Dlookup() o un recordset.
Ya ves que intento ayudarte. Tu dirás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas