Como restar 1 a un campo, cuando el valor del campo se ponga en un formulario.

Estoy montando una pequeña base de datos en acces, y por una parte tengo un tabla MATERIAL, en esta se incluye el nombre, cantidad y precio que tiene cada uno. Por otra parte tengo otra tabla, llamada reparación en la que se incluyen otra información y el material utilizado para la reparación, en el campo de material tengo hecha una consulta para que me saque el nombre de cada material.

Mi pregunta es, como puedo restar 1 al campo cantidad de la tabla MATERIAL, cuando el material se incluya en la tabla reparación.

1 respuesta

Respuesta
1

Vamos a suponer que la tabla Material tiene los campos IdMaterial, Nombre, Precio y Cantidad. Vamos a suponer que la tabla Reparacion tiene ... Idmaterial, Precio, Cantidad... etc

Vamos a suponer que con ésta última has hecho un formulario. En el evento Despuées de actualizar del ¿combinado? Idmaterial, crea un procedimiento de evento y entre Private Sub y End Sub escribe

precio=dlookup("precio","material","idmaterial=" & me.idmaterial & "")

Cantidad. Setfocus

Y en el evento Después de actualizar del cuadro de texto Cantidad

docmd.setwarnings false

docmd.runsql"update material set cantidad=cantidad-" & me.cantidad & " where idmaterial = " & me.idmaterial & ""

Esta última instrucción te vale tanto si la cantidad usada es 1 o más. Si sólo va a ser 1 siempre, la puedes poner como

........cantidad=cantidad-1 where.....

La cosa esta en que yo en ningún momento tengo un campo Cantidad en el formulario, tengo los campo Pieza1, Pieza2, Pieza3... hasta la Pieza 7.  Estos son cuadros combinados, estos consulta el nombre a la tabla MATERIAL.

De todas formas para que te hagas una idea de como esta montada, te la adjunto en el siguiente enlace.

https://drive.google.com/open?id=1yoqnmOliazeXuehPYZU-4GhoEDEOCoKk

He visto la base y, me vas a perdonar, pero creo que la complicas demasiado. Te he preparado un ejemplo, que es más sencillo. Como aquí en Murcia, no tenemos nubes(hace 5 meses que no llueve una gota), si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te lo mando.

Si lo haces, en el asunto del mensaje pon tu alias Unai Sánchez ya que si no sé quien me escribe ni los abro.

La pregunta no admite más respuestas

Más respuestas relacionadas