¿Cómo actualizo un campo de una tabla?

Juan Pablo buenas tardes, estoy en el intento de elaborar un pequeño sistema en access, sobre control de inventarios. En el que tengo estas tablas; tabla_Productos(cveproducto, nombre, cantidadexistencias, etc) tabla_Compras(cvecompra, cveproducto, cantidadcompra, etc) y Tabla_EntradasAlmacen(cveentrada, cvecompra, fechaentrada), hice una consulta que me actualizara el campo cantidadexistencias. TablaProductos, en donde sume la cantidad existente +cantidadcompra, pero al ejecutar la consulta me vuelve a actualizar los campos, como le hago para que solo actualice la ultima compra .

1 respuesta

Respuesta
1
Supongo que en la "tabla_Compras" registras todas las compras de productos, es decir, con esa tabla "alimentas" el almacén [usando el campo "cantidadcompra"], si es así, también supongo que tienes un formulario de esta tabla.
Si mis suposiciones son correctas, para poder actualizar el campo "cantidadexistencias" de la "tabla_Productos" debes tener un campo en común entre las tablas en cuestión [tabla_Productos y tabla_Compras], por ejemplo el campo "cveproducto".
La consulta de actualización quedaría se la siguiente forma [si la estableces en "Vista SQL"]:
UPDATE tabla_Productos AS P INNER JOIN tabla_Compras AS C ON P.Id = C.cveproducto SET P.cantidadexistencias = P.cantidadexistencias + C.cantidadcompra WHERE P.cveproducto = 1;
Obviamente la cláusula WHERE la debes adaptar a tu proyecto, ya que no sé de "dónde" obtienes la "cveproducto" actual.
Espero haber ayudado aunque sea un poco. Si no es así, sé más explícito(a) dándome toda la información que consideres necesaria para ayudarte.
Saludos desde México. Juan Pablo E.P.
Hola Juan Pablo, buenas tardes. Primero que nada agradezco tu ayuda. Mira tus suposiciones son correctas, me falto comentar que también interviene otra tabla que se llama T_Entradas al Almacen en donde tengo los siguientes campos(cve_entrada, cve_compra, fechaentrada) esta tabla la relaciono con la tabla T_Compras con el cvecompra, entonces lo que quiero hacer es que en el formulario de esta tabla EntradasAlmacen al capturar la fecha de entrada, por que se esta suponiendo que es cuando ya llega el producto al almacen, darle un clic en un botón que me actualice cantidad del productos, en base a lo comprado, o sea cantidad en existencias + cantidad de compra, ¿pero no se como hacer esto?.
Hice una consulta de actualización y es la siguiente, pero me vuelve actualizar, cada que la ejecuto, por que no le estoy condicionando que producto es el que voy actualizar en base a la compra hecha.
UPDATE T_Productos INNER JOIN (T_Compras INNER JOIN T_EntradasAlmacen ON T_Compras.cvecompra = T_EntradasAlmacen.cve_compra) ON T_Productos.Cve_producto = T_Compras.cveproducto SET T_Productos.cantidadexistencia = [cantidadexistencia]+[cantidadcompra];
Quisiera mandarte un informe de las relaciones de las tablas que tengo, pero no entiendo como enviarte una imagen por este medio. Y ademas mandarte una imagen del formulario de entradas al almacen.
Espero que me haya hecho entender.
Gracias
Saludos
Pues bien, a mi se me haría más sencillo analizar tu BD desde cerca, es decir, si gustas puedes enviarme una copia a [email protected]
Pero si quieres hacer el "último intento" te sugiero otra opción:
Coloca un nuevo campo [llamémosle "Actualizar"] en la tabla "T_EntradasAlmacen" de tipo "Si/No" y cuando hagas la "actualización" simplemente hazlo sobre los datos que tienen "Sí". Es decir:
1.- Compras un producto y en "T_EntradasAlmacen" almacenas "Sí" en el campo "Actualizar"
2.- Después, cuando actualices "T_Productos.cantidadexistencia" busca sólo los campos "T_EntradasAlmacen.Actualizar = True" [si no funciona con "True" usa "1"]
3.- Al final actualiza "T_EntradasAlmacen.Actualizar = False" [si no funciona con "False" usa "0"]
La actualización de T_Productos.cantidadexistencia "creo" que quedaría así:
UPDATE T_Productos INNER JOIN (T_Compras INNER JOIN T_EntradasAlmacen
ON T_Compras.cvecompra = T_EntradasAlmacen.cve_compra) ON
T_Productos.Cve_producto = T_Compras.cveproducto AND T_EntradasAlmacen.Actualizar = True SET
T_Productos.cantidadexistencia = [cantidadexistencia]+[cantidadcompra];
La actualización de T_EntradasAlmacen.Actualizar "creo" que quedaría así:
UPDATE T_EntradasAlmacen SET T_EntradasAlmacen.Actualizar = False;
No estoy muy seguro de las sentencias SQL, pero espero que captes la idea.
Saludos desde México. Juan Pablo E.P.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas