Actualizar campo calculado en tabla
Estoy ejecutando el siguiente código y funciona para calcular el valor que quiero, pero a la hora de actualizar el campo en la tabla no lo hace y genera un error de "Conflicto de escritura"
Quisiera saber como puedo solucionarlo y hacer que el valor quede guardado en el campo que necesito.
Gracias por su colaboración
Option compare database
private sub cuadro_combinado120_afterupdate()
dim dbtemporal as dao.database
dim consulta as dao.recordset 'declaracion de variables
dim strsql as string
dim inserta as string
dim fuente, acumulado, acumulado1, acumulado2, acumulado3, acumulado4, acumulado5, acumulado6 as integer
dim disponible as double
dim rubro, tipomto as string
fuente = me.texto135
rubro = me.texto137
acumulado = 0
set dbtemporal = currentdb() 'activamos la bd
strsql = "select movimiento_presupuesto.tipo_movimiento, movimiento_presupuesto.cod_fteingreso, movimiento_presupuesto.cod_rubro, movimiento_presupuesto.valor_mto from movimiento_presupuesto;" 'escribimos la consulta sql
set consulta = dbtemporal.openrecordset(strsql, dbopendynaset) ' creamos el recordset
if consulta.recordcount > 0 then 'si la consulta tiene registros
do while not consulta.eof '(es decir: mientras no sea final de la tabla...)
acumulado = 0
select case consulta!tipo_movimiento
case 1
if consulta!cod_fteingreso = fuente and consulta!cod_rubro = rubro then
acumulado1 = acumulado + consulta!valor_mto
else
end if
case 2
if consulta!cod_fteingreso = fuente and consulta!cod_rubro = rubro then
acumulado2 = acumulado + consulta!valor_mto
else
end if
case 3
if consulta!cod_fteingreso = fuente and consulta!cod_rubro = rubro then
acumulado3 = acumulado + consulta!valor_mto
else
end if
case 4
if consulta!cod_fteingreso = fuente and consulta!cod_rubro = rubro then
acumulado4 = acumulado + consulta!valor_mto
else
end if
case 5
if consulta!cod_fteingreso = fuente and consulta!cod_rubro = rubro then
acumulado5 = acumulado + consulta!valor_mto
else
end if
case 6
if consulta!cod_fteingreso = fuente and consulta!cod_rubro = rubro then
acumulado6 = acumulado + consulta!valor_mto
else
end if
case else
msgbox "valor disponible no actualizado"
end select
disponible = (acumulado1 + acumulado2 + acumulado5) - (acumulado3 + acumulado4 + acumulado6)
consulta.movenext ' pasamos al siguiente registro
loop ' cerramos el bucle
set dbtemporal = currentdb()
inserta = "update temporal_movimiento_presupuesto set valor_disponible =(" & disponible & ")"
docmd.runsql inserta
else
msgbox " no existen registros en la tabla de presupuesto"
end if
end sub