Actualizar 2 o más tablas con código VB en Access
En una aplicación desarrollada en Access con procedimientos en Visual Basic, necesito actualizar el campo unidades disponibles de la tabla Stocks cada vez que se procesa una factura de compra o de venta.
El formulario desde el que se introducen los datos de compra o venta tiene como tabla origen del registro la tabla de compras o la de ventas, según corresponda, y en estas se guardan todos los detalles de dichas facturas de compra o venta.
Se trata en definitiva de actualizar la tabla Stocks, que contiene la referencia del artículo, descripción, unidades, almacén y ubicación en el almacén.
Una vez introducidas las unidades del artículo que se procesa, al salir de campo cantidad, no se actualiza la tabla y se produce el error "3061 en tiempo de ejecución. Pocos parámetros. Se esperaba 1". La línea donde rompe el procedimiento es BD. Execute ...
El código utilizado es el siguiente:
Private Sub CANTIDAD_Exit(Cancel As Integer)
Dim ConsultaSQL As String, Datos As Recordset, BD As Database
Set BD = CurrentDb
ConsultaSQL = "SELECT CREF FROM STOCKS WHERE CREF='" & Me.CREF & "'"
Set Datos = BD.OpenRecordset(ConsultaSQL)
BD.Execute ("Update Stocks Set NSTOCK = NSTOCK + Me.CANTIDAD Where CREF = '" & Me.CREF & "'")
Datos. Close
BD. Close
End Sub
---------------------------------------------------------------------------------------------
CREF: Campo código del artículo que se va a actualizar en la tabla Stocks
Me. CREF: La variable que contiene el código que se acaba de procesar en el formulario
NSTOCK: Campo unidades a actualizar en la tabla Stocks
El formulario desde el que se introducen los datos de compra o venta tiene como tabla origen del registro la tabla de compras o la de ventas, según corresponda, y en estas se guardan todos los detalles de dichas facturas de compra o venta.
Se trata en definitiva de actualizar la tabla Stocks, que contiene la referencia del artículo, descripción, unidades, almacén y ubicación en el almacén.
Una vez introducidas las unidades del artículo que se procesa, al salir de campo cantidad, no se actualiza la tabla y se produce el error "3061 en tiempo de ejecución. Pocos parámetros. Se esperaba 1". La línea donde rompe el procedimiento es BD. Execute ...
El código utilizado es el siguiente:
Private Sub CANTIDAD_Exit(Cancel As Integer)
Dim ConsultaSQL As String, Datos As Recordset, BD As Database
Set BD = CurrentDb
ConsultaSQL = "SELECT CREF FROM STOCKS WHERE CREF='" & Me.CREF & "'"
Set Datos = BD.OpenRecordset(ConsultaSQL)
BD.Execute ("Update Stocks Set NSTOCK = NSTOCK + Me.CANTIDAD Where CREF = '" & Me.CREF & "'")
Datos. Close
BD. Close
End Sub
---------------------------------------------------------------------------------------------
CREF: Campo código del artículo que se va a actualizar en la tabla Stocks
Me. CREF: La variable que contiene el código que se acaba de procesar en el formulario
NSTOCK: Campo unidades a actualizar en la tabla Stocks
1 Respuesta
Respuesta de Neckkito Nck
2