Actualizar tabla stock con resultado de calculo en varias tablas DAO Access
Y gracias por sus respuestas y colaboración en este empeño!
' La necesidad: Realizar una consolidación del inventario basado en el inventario inicial, restar las cantidades de producto facturadas a clientes, sumar las cantidades de producto compradas a proveedor y el resultado actualizarlo en la tabla de stock Actual, todo esto usando DAO
Las tablas...
' F_CIN : Tabla en la que se ingresó el inventario inicial (Consolidación) Campo del código del articulo: ARTCIN
' F_LFA : Tabla con las líneas de la facturas de VENTA Campo del código del artículo : ARTLFA
' F_LFR : Tabla con las líneas de la facturas de COMPRA Campo del código del artículo : ARTLFR
' F_STO : Tabla con el inventario actual. Campo del código artículo : ARTSTO
' ---------------
' 0. Estoy intentando: leer cada registro del articulo en tabla del inventario inicial (F_CIN!ARTCIN) y las cantidades ingresadas en dicha tabla en el campo (URECIN) y luego...
' 1. SUMARLE las cantidades (Campo: CANLFR) de cada articulo en la tabla de compras (F_LFR!ARTLFR)
' 2. RESTARLE las cantidades (Campo: CANLFA) de cada articulo en la tabla de ventas (F_LFA!ARTLFA)
' 3. EDITAR los valores en la tabla de stock (F_STO!ARTSTO) en el campo ACTSO (Numérico) con el resultado de las operaciones 0 - 3 . He intentado con consultas y ahora me decanto por dao.recordset asi:
Sub ConsolidarPrueba()
On Error GoTo ErrHand
Dim DB As DAO.Database
Dim RsCIN, RsSTO, RsLFA, RsLFR As DAO.Recordset
Dim SqlLFA, SqlLFR, SqlCIN, SqlSTO As String
Set DB = CurrentDb()
Set RsCIN = DB.OpenRecordset("F_CIN", dbOpenDynaset)
' las lineas de las facturas de venta
SqlLFA = "SELECT F_LFA.TIPLFA, F_LFA.CODLFA, F_LFA.ARTLFA, F_CIN.ARTCIN, F_LFA.CANLFA " & vbCrLf & _
"FROM F_LFA INNER JOIN F_CIN ON F_LFA.ARTLFA = F_CIN.ARTCIN " & vbCrLf & _
"ORDER BY F_LFA.TIPLFA, F_LFA.CODLFA, F_LFA.ARTLFA;"
Set RsLFA = DB.OpenRecordset(SqlLFA, dbOpenDynaset)
Set RsLFR = DB.OpenRecordset("F_LFR", dbOpenDynaset)
' Inicio Leyendo los registro en las líneas de facturas de venta
Dim vCalculo As Double
RsLFA.MoveFirst
Do While Not RsLFA.EOF
vCalculo = RsCIN!URECIN - RsLFA!CANLFA + RsLFR!CANLFR
' Disculpadme si no hay mas código aquí, pero lo he borrado decenas de veces
' Agradezco vuestra ayuda... Estoy bloqueado!!!
' Debug.Print "Producto FFAC : " & RsLFA!ARTLFA & " - CANLFA: " & RsLFA!CANLFA
' Debug.Print vCalculo
RsLFA.MoveNext
Loop
ExitSub:
RsCIN. Close
RsSTO. Close
RsLFA. Close
RsLFR. Close
Set RsCIN = Nothing
Set RsLFA = Nothing
Set RsLFR = Nothing
Set RsSTO = Nothing
Set DB = Nothing
Exit Sub
ErrHand:
Resume ExitSub
End Sub