HENRY_DAVID | |
| 2007-06-04 18:16 - Respuestas: 21 - Tema nº: 2450818
Hola amigo ebolo, digite el código q me pusiste pero me sale el sgte. mensaje: Se ha producido el error 3061 en tiempo de ejecución .
Pocos parametros. Se esperaba 1
PD: Te recuerdo que mi campo unidcompra se encuentra en el subformulario detalle de compras. Espero q me puedas ayudar. Gracias
| |
|
|
ebolo | |
|
Re: ACCESS - 2007-06-04 20:23 - Respuesta 17
me comí la S del plural de unidcompras, si se llama así.
- Modificar:
* evento antes de actualizar: restamos la cantidad que nos ponga en el cuadro de texto del stock.
Private Sub unidcompras_BeforeUpdate(Cancel As Integer)
Dim consulta as string
consulta = "UPDATE PRODUCTOS SET PRODUCTOS.[STOCK] = [STOCK] - " & me.unidcompras
consulta = consulta & " WHERE (((PRODUCTOS.[unidcompras])=" & Me.idproducto & "))"
CurrentDb.Execute consulta
End Sub
* evento después de actualizar: sumamos la cantidad que nos ponga en el cuadro de texto al stock.
Private Sub unidcompras_AfterUpdate()
Dim consulta as string
consulta = "UPDATE PRODUCTOS SET PRODUCTOS.[STOCK] = [STOCK] + " & me.unidcompras
consulta = consulta & " WHERE (((PRODUCTOS.[unidcompras])=" & Me.idproducto & "))"
CurrentDb.Execute consulta
End Sub
saludos.
| |
|
|
HENRY_DAVID | |
|
Re: ACCESS - 2007-06-04 20:54 - Respuesta 18
El nombre del campo esta bien, pero igual lo probe con la letra s y me sigue saliendo el mismo error, tu crees q pueda ser xq el nombre del campo unidcompra pertenece a la tabla detalle de compras y no a la tabla productos.
| |
|
|
ebolo | |
|
Re: ACCESS - 2007-06-04 22:49 - Respuesta 19
claro Henry, si no existe es campo unidcompras en productos pues como que no funciona, debes de poner el campo que exista en la tabla productos e igualarlo al cuadro de texto del subformulario ventas, más o menos ésto:
Modificar:
* evento antes de actualizar: restamos la cantidad que nos ponga en el cuadro de texto del stock.
Private Sub unidcompras_BeforeUpdate(Cancel As Integer)
Dim consulta as string
consulta = "UPDATE PRODUCTOS SET PRODUCTOS.[STOCK] = [STOCK] - " & me.unidcompras
consulta = consulta & " WHERE (((PRODUCTOS.[idproductos])=" & xxxxxxx & "))"
CurrentDb.Execute consulta
End Sub
* evento después de actualizar: sumamos la cantidad que nos ponga en el cuadro de texto al stock.
Private Sub unidcompras_AfterUpdate()
Dim consulta as string
consulta = "UPDATE PRODUCTOS SET PRODUCTOS.[STOCK] = [STOCK] + " & me.unidcompras
consulta = consulta & " WHERE (((PRODUCTOS.[idproductos])=" & xxxxxxxx & "))"
CurrentDb.Execute consulta
End Sub
dónde xxxxxx es el cuadro de texto donde tengas la cantidad a descontar ó sumar.
PD: hacer las cosas sin ver las tablas, forms,... es complicado.
para ver la sintaxis correcta, puedes crearte una Consulta, le añades la tabla que quieras y seleccionas los campos que desees ver; luego te vas a Vista SQL y ahí verás la sintaxis de la consulta en SQL.
Estando en diseño, si vas a la pestaña Consulta - Consulta de Actualización, le pones en el criterio del campo idproducto el producto que quieras y en el campo de Stock el valor que desees, SIN EJECUTAR la consulta vas a Vista SQL, podrás ver la sintaxis correcta de la misma.
Es muy cómodo usar éste método, prácticalo.
Saludos.
| |
|
|
HENRY_DAVID | |
|
Re: ACCESS - 2007-06-05 20:24 - Respuesta 20
Hola otra vez, la verdad es q no entiendo muy bien sobre programar, disculpa mi insistencia pero a ver si me puedes ayudar denuevo, te envio en vista SQL la consulta de donde jala mi subformulario, hay dos tablas productos y Detalle de Compras:
SELECT [Detalle de Compras].IDCOMPRAS, [Detalle de Compras].IDPRODUCTO, Productos.IDCATEGORIAS, [Detalle de Compras].CANTIDADCOMPRAS, [Detalle de Compras].TOTALCOMPRA, CCur([Detalle de Compras].TOTALCOMPRA/[CANTIDADCOMPRAS]) AS [Nuevo Precio], Productos.STOCK
FROM Productos INNER JOIN [Detalle de Compras] ON Productos.IDPRODUCTO = [Detalle de Compras].IDPRODUCTO;
saludos
| |
|
|
|