Como actualizar registros en una tabla

Tengo un pequeño problema necesito actualizar datos de una tabla de mi BD la tabla se llama inventario como puedo hacer que un campo dentro de esta tabla se me valla actualizando dependiendo de datos introducidos en un formulario en Hoja de datos ejemplo:

codigo     descrip     vendidos    comprados

001            manzana             20                     30

002             peras                  10                     20

003             piñas                   15                     40

En mi hoja de datos osea el formulario escojo este producto entonces lo voy a vender aquí viene lo que quiero hacer si yo escojo este registro y le doy una cantidad de (2) osea que voy a vender dos manzanas quiero que cuando guarde la venta también me mande esta cantidad al campo vendido de dicho registro

Osea tengo varios

001 cant 2

002 cant 3

003 cant 4

Quiero que cuando guarde la venta estos numero me los ponga en la tabla inventario en el campo vendidos

En este caso el código 001 ya no tendría 20 sino 22 así con todos, el 002 ya no tendría 10 sino 13, el 003 ya no tendría 15 sino 19

Respuesta
1

En el momento de validar la venta abres un recordset sobre el detalle de la venta. En cada registro lanzas una consulta de actualización sobre la tabla de inventario actualizando el valor (yo lo hago mediante recordsets).

Algo así (escrito del tiron):

Nota: Se supone que tienes un campo IdVenta que te agrupa los detalles de la venta en pantalla

Dim rstDetalle as DAO.Recordset

Dim rstInventario As DAO.Recordset

Set rstDetalle = CurrentDb.OpenRecordset("SELECT * FROM Detalle WHERE IdVenta = " & Me!IdVenta)

Set rstInventario = CurrentDb.OpenRecordset("SELECT * FROM Inventario")

Do Until rstDetalle.EOF

  rstInventario.FindFirst "IdProducto = " & rstDetalle!IdProducto

  If rstInventario.NoMatch Then

    ' Tenemos un problema: no se encontró el producto

   Else

    rstInventario.Edit

    rstInventario!Vendidos = rstInventario!Vendidos + rstDetalle!Cantidad

    rstInventario.Update

  End If

  rstDetalle.MoveNext

Loop

rstDetalle.Close

Set rstDetalle = Nothing

rstInventario.Close

Set rstInventario = Nothing

Adáptalo a tus campos

Un saludo

Xavi

[email protected]

1 respuesta más de otro experto

Respuesta
1

A los que ven esta pregunta y están pasando por lo mismo si no bueno aquí les dejo la respuesta que era tan sencilla y pues la descubrí yo mismo.

Lo que hay que hacer es una consulta de actualización en mi caso lo hice de esta forma

Mis dos tablas Inventario que era la que yo quería que se me actualizara con los campos otra tabla que tengo es detalles de ventas con esta yo hice una consulta para traer los detalles de los productos bueno en esta tabla tengo el campo que quería que se me sumara a lo que ya estaba en la tabla inventario claro esta se tiene que tener en cuenta el código del producto bueno aquí voy

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas