Visualizar los campos calculados de un formulario.

Tengo un formulario que realiza unos cálculos en la apertura del mismo, y mientras no pulse la tecla [F5] los campos no son visualizados.

Utilizo este proceso:

Private Sub Form_Current()
If Me.IRPF = 0 Then
Me.BASE = Me.Importe / (1 + (Me.IVACOMPRAS / 100))
Me.Cuota = Me.BASE * (Me.IVACOMPRAS / 100)
Me.IRPF = 0
Me.CuotaIRPF = 0
Me.Suplidos = 0
Me.BaseIRPF = Me.BASE
Else
Me.BASE = Me.BaseIRPF
Me.Cuota = Me.BASE * (Me.IVACOMPRAS / 100)
Me.CuotaIRPF = Me.BASE * (Me.IRPF / 100) * -1
End If
DoCmd. RunCommand acCmdSaveRecord
DoCmd. RunCommand acCmdRefresh
End Sub

Y no se visualizan los Campos calculados.

Respuesta
1

Pruebe adicionando:

Me. Recalc

Me. Refresh

1 respuesta más de otro experto

Respuesta
2

Juan ¿puedes poner una imagen del formulario? No me hago idea del problema, ¿por qué en el evento Al activar el registro( que se supone que todavía no hay nada escrito en el registro) le estás diciendo que si IRPF=0...? ¿Es qué IRPF ya está previamente rellenado?. Por otro lado, si esos cuadros de texto tienen como origen de control un campo de la tabla, no necesitas decirle que lo guarde, ya que Access, por defecto, si no le dices nada en contra, lo guarda.

No he podido contestarte antes.

Gracias de antemano por tu ayuda.

Adjunto dos Formularios. El primero es el Form Inicial donde se hacen diferentes comprobaciones antes de Contabilizar el Asiento Contable. Es para evitar duplicados de Facturas ya Contabilizadas anteriormente.

Formulario 1º:

Formulario 2:

Se quedan los Campos: Base-Cuota sin ser cumplimentados:

He puesto un botón de: ACTUALIZAR CAMPOS y tampoco lo realiza.

Solo ser actualizan si se pulsa en el teclado: [ F5 ].

Si necesitas más información dímelo y te la envío.

Un saludo.

No sé de donde sale el valor de base ni el de cuota, ni como se calculan, si de una tabla o si está en el primer formulario que pones.

Vamos a suponer que está en una tabla o consulta, y vamos a suponer que la base y la cuota van en función del proveedor. Personalmente, lo pondría en el evento Después de actualizar del control Proveedor( de forma que cuando escriba un número y pulse Enter ya me aparezcan sus valores)

Base=dlookup("base","tablaquesea","proveedor=" & me.proveedor & "")

Cuota=dlookup("cuota", lo mismo)

Por si los cuadros Base y cuota fueran independientes pondría la misma instrucción en el evento Al activar el registro del formulario

Vamos a suponer que Base y Cuota(aunque yo no los vea) están en el formulario Contabilización Apuntes Compras y Gastos, y que el segundo formulario lo abres desde el primero. En el evento Al activar el registro del segundo formulario le pondría

If currentproject.allforms("Contabilizacion apuntes....").isloaded then

base=forms![contabilizacion apuntes....]!nombredelcontrolenqueaparece

Cuota==forms![contabilizacion apuntes....]!nombredelcontrolenqueaparece

end if

Es decir, que si el formulario primero está cargado, que sí lo está pues has abierto el segundo desde él, el valor del control Base del segundo sea igual al que figura en el control que sea del primer formulario.

En caso de que el control Base del segundo formulario estuviera en un subformulario la instrucción sería

if....

forms![contabilizacion facturas compras....]!nombredelsegundo!nombredelsubformulario.form!base=...

Por último, ¡Nene, ¿no le puedes poner unos nombres más cortos?!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas