Calcular campos en dos direcciones

Tengo una tabla con los campos: cantidad, preciolitro. Sobre esta tabla hago una consulta para calcular el total (Total: cantidad * preciolitro). Luego pongo los tres campos en un formulario para introducir los datos.

Habría forma de que el usuario pudiera introducir en esos mismos campos, el preciolitro y el total, ¿y qué automáticamente se calculara la cantidad e insertara el valor de la tabla?

No sé si me he explicado bien.

1 Respuesta

Respuesta
2

Puedes hacerlo de varias formas:

1º/ Si usas Access 2010 o superior, tienes la opción de añadir en la tabla un campo de tipo "calculado", que configurarías con esa multiplicación.

2º/ Hacerlo por código en un formulario: En el evento "después de actualizar" de los campos "cantidad" y "preciolitro", generas este código:

If Not IsNull(Me.Cantidad) AND Not IsNull(Me.preciolitro) Then Me.Total= Me.cantidad*Me.preciolitro

3º/ Por último, y es mi forma de trabajar, yo no añadiría el campo Total a la tabla, pues siempre lo puedes sacar por medio de la consulta (o por código en un cuadro de texto independiente con el código del punto 2). Podrias hacer una consulta con todos los datos de tu tabla, más en campo Total como el producto de esos dos campos, y hacer el informe sobre esa consulta. De esta forma, el total ya se te calcula solo, y te ahorras almacenar ese campo en la tabla.

Un saludo.


http://nksvaccessolutions.com/academy/ 

En primer lugar, muchas gracias por la respuesta pero creo que no me he explicado bien.

A ver si con un ejemplo. Tengo un formulario para una gasolinera con los campos "Cantidad"; "PrecioLitro"; "Total".

Cuando el usuario introduce la cantidad y el preciolitro me calcula el total sin problemas. (que creo que es lo me dices tú)

Lo que deseo es que el usuario pueda introducir en esos mismos campos, el preciolitro y el total (y lo que me calcule sea la cantidad). De esta forma podría introducir p. ej. (en precio/litro) 1.2; (en total) 50€ ...... y me calcularía y insertaría la cantidad (50/1.2= 41.66 litros).

¿Lo he explicado un poco mejor? 

Ah, vale, había entendido que querías guardar el campo Total en la tabla.

En ese caso, la idea es la misma que la que te explico en el punto 2, pero con más opciones:

If Not IsNull(Me.Cantidad) AND Not IsNull(Me.preciolitro) Then

Me.Total= Me.cantidad*Me.preciolitro

ElseIf Not IsNull(Me.Cantidad) AND Not IsNull(Me.total) Then

Me.Preciolitro=Me.Total / Me.Cantidad

ElseIf Not IsNull(Me.Total) AND Not IsNull(Me.preciolitro) Then

Me.Cantidad=Me.total / Me.preciolitro

End If

¡Gracias! 

Me ha funcionado perfecto. Para el que tenga el mismo problema solo recordarle que debe crear un campo en la tabla llamado "Total".

Mil Gracias!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas