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


