Como decrementar el saldo de un adeudo...

Tengo 1 tabla la cual se llama (Compras) esta atabala entre aotras cosas tiene un campo que se llama (Saldo), también tengo otra tabla que se llama (Abonos) y entre otras cosas tiene un campo llamado (Pago). De esta tabla tengo un form con nombre (Abonos), este formulario tiene un campo llamado (Pago) y un botón que se llama (Guardar). Lo que pretendo es que al hacer click en el botón (Guardar) me descuente o me resta la cantidad que le e abonado a la compra. Hay que tener en cuenta que son dos tablas dititas pero el resultado es uno solo el cual me gistaria que se guarde en la tabala (Compras) ya que de esta tabla sacare un informe de saldos.
Caual quier sugerencia es bien ebenida y de aantemano
Respuesta
1
Puedes hace dos cosas:
a) cambiar el número de los textbox por código y guardar
me.saldo = me.valor + me.abono
y guardar
b) cambiarlo mediante consultas de actualización: esta es más elegante y puedes actuar en varias tablas sin necesidad de tenerlas en el formulario, con algo así:
Dim strSQL as string
Dim Abono as long
strSQL = "UPDATE Compras SET Compras.Saldo = [compras].[saldo]+" & me.abono
strSQL = strSQL " WHERE ....."
docmd.runSQL strSQL
me.abono = 0
Personaliza el Where según tus necesidades
Una vez que pasa la consulta, y actualizas el saldo, pon el abono a 0 para estar seguro que sólo se hace una vez
Gracias por responder tan rapido, solo me queda una pregunta. ¿En qué evento pongo este código o es una instrucción SQL?
Ponlo en el que te parezca más adecuado según el diseño de tu formulario.
Puedes poner un botón Abonar,
Puedes ponerlo en el evento lostfocus del control de abono, yo lo pondría aquí.
Un consejo es que además le pongas alguna validación antes de hacer la operación, del estilo de:
Yo le pondría al abono valor por defecto 0 (para evitar el null que siempre da algo de guerra)
Y el en el código al lostfocus
Algo así como
Dim lngAbono as long
lngAbono = me.abono
if lngAbono > 0 ....
end if
o
dim resp as integer (respuesta al msgbox para abonar)
select case lng abono
case < 0
msgbox ... "No se permiten abonos negativos"
case 0
exit sub
case > 0
resp = msgbox ... "Va a realizar un abono de " & lngAbono & ". ¿desea continuar?"
if resp = 6 then .... SI -->
    código del SQL del abono
end if
if resp = 7 then .... NO -->
    me.abono=0
    exit sub
end if
end select
Pero esto sólo son ideas, depende de la seguridad que quieras tener en el control de los datos
Si quieres que no avise, puedes poner DoCmd.SetWarnings = false --> código de consulta de actualización DoCmd.SetWarnings = true
Gracias me asido de mucha ayuda que bueno que tenemos en el mundo porsonas como tu que nos ayudan a superarnos otra ves gracias y que te valla bien el la vida.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas