Asignar valor calculado a un campo de tabla en Access con VBA o lenguaje SQL.

Agradezco a quien me pueda ayudar con lo siguiente:

Tengo unas tabla llamada Productos en donde tengo los campos Cantidad_compra y Cantidad_compra2 lo primero que
necesito hacer es asignar a Cantidad_compra2 el valor de Cantidad_compra, es decir Cantidad_compra2= Cantidad_compra
luego necesito a dicho campo llamado Cantidad_compra2 decrementarlo con el campo llamado Cantidad_venta que esta en otra tabla
llamada Productos_venta y que el campo Cantidad_compra2 quede con dicho valor , es decir:
Cantidad_compra2=Cantidad_compra2-Cantidad_venta

He intentado hacer eso utilizando lenguaje de programación VBA, como se ve a continuación:

Private Sub Comando14_Click()

Dim db1 As dao.Database
Dim db2 As dao.Database
Dim db3 As dao.Database

Dim rs1 As dao.Recordset, rs2 As dao.Recordset, rs3 As dao.Recordset

Set db1 = CurrentDb
Set db2 = CurrentDb
Set db3 = CurrentDb

Al ejecutar el código paso a paso (Depuración con F8) y poner el puntero izquierdo del mouse
en rs1, rs2 y rs3 No me muestra los valores de cada una de las tres consultas
Set rs1 = db1.OpenRecordset("Select Cantidad_compra from Productos Where Cod_producto='" & Me.Cod_producto_venta & "'") 'Se coloca asi por que es un subformulario dentro de otro subformulario
Set rs2 = db2.OpenRecordset("Select Cantidad_compra2 from Productos Where Cod_producto='" & Me.Cod_producto_venta & "'") ' Lo asignamos a otro campo llamado Cantidad_compra2 (2)
Set rs3 = db3.OpenRecordset("Select Cantidad_venta from Productos_venta Where Cod_producto_venta='" & Me.Cod_producto_venta & "' And Numero_factura_venta='" & Me.Numero_factura_venta & "'", dbOpenSnapshot)

Do While Not rs1.EOF
Do While Not rs2.EOF
Do While Not rs3.EOF

rs1.edit
rs2.edit
rs3.edit

rs2!Cantidad_compra2 = rs1!Cantidad_compra ' asigno a Cantidad_compra2 lo que esta en Cantidad_compra
rs2!Cantidad_compra2 = rs2!Cantidad_compra2 - rs3!Cantidad_venta 'A Cantidad_compra2 le asigno la diferencia entre lo que se tiene
' En el mismo rs2!Cantidad_compra2 con rs3!Cantidad_venta
rs2.update

rs3.MoveNext
rs2.MoveNext
rs1.MoveNext
Loop
Loop
Loop

End Sub

Al no mostrarse o traerme los tres valores de la consulta como se dijo anteriormente (Set rs1, Set rs2, Set rs3)
No se calcula lo siguiente:
rs2!Cantidad_compra2 = rs1!Cantidad_compra
rs2!Cantidad_compra2 = rs2!Cantidad_compra2 - rs3!Cantidad_venta

Tome la decisión de hacer todo con el lenguaje de consulta Sql, pero pese a que hago esto:

Select Cantidad_compra,Cantidad_compra2,Cantidad_venta from Productos,Productos_venta
Inner Join Productos_venta ON Productos.Cod_producto = Productos_venta.Cod_producto_venta

No se comno hacer en dicha sentencia para hacer el proceso descrito anteriormente es decir hacer

rs2!Cantidad_compra2 = rs1!Cantidad_compra
rs2!Cantidad_compra2 = rs2!Cantidad_compra2 - rs3!Cantidad_venta

En la consulta Sql

2

2 respuestas

Respuesta
2

¿Todavía lo necesitas? Espero haber entendido tu problema. Creo que en SQL quedaría así.

SELECT Cantidad_compra, Cantidad_compra - Cantidad_venta AS Cantidad_compra2, Cantidad_venta FROM Productos, Productos_venta
INNER JOIN Productos_venta ON Productos.Cod_producto=Productos_venta.Cod_producto_venta

Saludos!! \m/ :)

Respuesta
1

Similar a lo que Froy te respondió

select

     pr.cantidad_compra,

     prvta.cantidad_venta,

     (pr.cantidad_compra - prvta.cantidad_venta) as cantidad_compra_2

     from

          productos as pr,

          productos_venta as prvta

     where

          pr.cod_producto = prvta.cod_producto_venta

Espero que te sea de utilidad que tengas buena noche

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas