Sumar valor de los productos en un inventario

Los expertos de este blog

Estoy terminando de construir mi DB en Access 2010, para el control de ventas de mi propio almacen (inventario, ventas, gastos.. Etc), pero tengo un inconveniente que no he podido solucionar y me urge mucho para poder empezar... Por esta razón recurro a uds haber si me pueden por favor ayudar..

1) Tengo un formulario "Entrada_Inventario" (este depende de una tabla), el cual permite el ingreso de productos al inventario, tiene un boton "Guaydar y Continuar", que en el evento al dar Click tiene el siguiente codigo, el cual permite ir sumando la cantidad ingresada de cada uno de los producto. Has aquí todo anda bien.

Private Sub GuardaEntrada_Click()
On Error GoTo err:

'Variables de ejecución
Dim idprod As Integer
Dim CantEnt As Double
Dim CantDisp As Double
Dim NvaCantDisp As Double

'Anular valores nulos en la asignacion de valores
idprod = Nz(Me.Cod_Producto.Value, 0)
CantEnt = Nz(Me.Cant_Producto.Value, 0)

'Buscar datos en Lista de Inventarios
Dim rst As DAO.Recordset
Dim sql As String

sql = "SELECT * FROM [INVENTARIO] US WHERE US.[Cod_Producto]=" & idprod
Set rst = CurrentDb.OpenRecordset(sql)
If rst.BOF And rst.EOF Then
MsgBox "Producto No Encontrado en Inventario. Debe ingresarlo primero a inventario"
Else
CantDisp = rst![Cantidad_Disponible]
NvaCantDisp = CantDisp + CantEnt
rst.Edit
rst![Cantidad_Disponible] = NvaCantDisp
rst.Update
rst.Close
Set rst = Nothing
End If

DoCmd.GoToRecord , , acNext

Exit Sub
err:
MsgBox err.Description

End Sub

2) Necesito que también me sume la cantidad en dinero que representa cada producto que se encuentre en el inventario. He adicionado código al anterior para que se ejecute en el mismo botón, pero me genera error. Llevo muchos días tratando de solucionarlo pero la verdad no he podido. Este es el código completo que tengo en el botón:

Private Sub GuardaEntrada_Click()
On Error GoTo err:

'Variables de ejecucion
Dim idprod As Integer
Dim CantEnt As Double
Dim CantDisp As Double
Dim NvaCantDisp As Double
Dim ValEnt As Double
Dim ValDisp As Double
Dim NValInv As Double

'Anular valores nulos en la asignacion de valores
idprod = Nz(Me.Cod_Producto.Value, 0)
CantEnt = Nz(Me.Cant_Producto.Value, 0)
ValEnt = Nz(Me.Val_Producto.Value, 0)

'Buscar datos en Lista de Inventarios
Dim rst As DAO.Recordset
Dim sql As String

sql = "SELECT * FROM [INVENTARIO] US WHERE US.[Cod_Producto]=" & idprod
Set rst = CurrentDb.OpenRecordset(sql)
If rst.BOF And rst.EOF Then
MsgBox "Producto No Encontrado en Inventario. Debe ingresarlo primero a inventario"
Else
CantDisp = rst![Cantidad_Disponible]
NvaCantDisp = CantDisp + CantEnt
ValDisp = rst![Dinero_en_Inventario]
NValInv = ValDisp + ValEnt
rst.Edit
rst![Cantidad_Disponible] = NvaCantDisp
rst![Dinero_en_Inventario] = NValInv
rst.Update
rst.Close
Set rst = Nothing
End If

DoCmd.GoToRecord , , acNext

Exit Sub
err:
MsgBox err.Description

End Sub

3) Si requieren conocer la estructura de mi DB, por favor me avisan y yo se las comparto...

!

1

1 respuesta

Respuesta
1

Luis: Siempre se ayuda mejor y con más eficacia si se tiene la BD.

Supongo que el mensaje se refiere al campo ValorProducto.

Si antes de compartir la BD quieres ver la línea que falla, pon el punto de interrupción al principio del Procedimiento y recorre paso paso el código, para ver la línea en la que te salta. Ya me contarás>> Jacinto

Cordial Saludo

Jacinto, muchas gracias por responder y por tu colaboración. Te cuento que esa es la parte que me tiene loco, porque no me muestra cual es la línea que me esta generando el error... el mensaje solo lo muestra cuando se ejecuta la aplicación... es posible que el error se deba a la estructura que tengo en la tabla de INVENTARIOS frente al código como tal... pero no logro identificar (mi conocimiento en programación es poco)

Por favor dime como y donde te comparto la DB, haber si me puedes dar una manito.

Muchas bendiciones

Atentamente:

Lucho

Lo más práctico Luis, sería que pusieras aquí un enlace y así te podrias beneficiar de más de una respuesta.

Si es que no deseas de momento exponerla, puedes mandarmela al email >> [email protected]

Ya me dirás>> jacinto

Ok Jacinto, ya te envio la DB

mil gracias

Jacinto, el correo me reboto....

Atento a comentarios

Disculpa pero a ésta hora tengo un poco de hambre y me he comido una letra.

Es >> [email protected] Faltaba la r >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas