Aplicar "Procedimiento de evento" al cambiar de registro

Tengo un formulario en el que en el evento Al activar registro ("Private Sub Form_Current()") tengo una línea de código que realiza varias acciones.

El problema es que si cambio de registro o salgo del formulario dichas acciones no se realizan.

Me gustaría saber dónde podría colocar ese código para que al cambiar de registro y/o a la salir del formulario, estas acciones se ejecutasen.

Respuesta
1

El evento adecuado es ese que citas. Habría que ver qué código tienes para ver por que no te funciona.

Ah, comprueba que tienesenlazado efectivamente el evento con el código: propiedades del formulario ->eventos y que en la línea de " al activar registro " te aparezca: [ procedimiento de evento ]

El código está bien enlazado y es el siguiente:

Private Sub Form_Current()
If Not Me.NewRecord Then
If DCount("*", "pagos", "idalumno=" & Me.idalumno & " and day([fecha])<=day(Date()) and month([fecha])=month(Date())and year([fecha])=year(Date())") Then
Etiqueta38.Visible = False
Me.pendiente = False
Else
Etiqueta38.Visible = True
Etiqueta38.Caption = "PENDIENTE DE PAGO"
Me.pendiente = True
End If
End If

Si realizo el cambio en un registro A de manera que se modifique el campo "pendiente", y paso a otro registro B, al salir del formulario no me reconoce los cambios realizados en el campo "pendiente" del registro A, hasta que vuelvo a activar ese registro.

El problema es que al haber muchos registros, se puede realizar cambios en varios de ellos de forma que no se actualicen los cambios al salir del formulario.

necesitaría solventar el problema de manera que al cambiar de registro se aplicase el código del Form_Current.

Vamos a ver, el código asociado al evento "al activar el registro" (form_current) se ejecuta cada vez que te mueves de registro, sí o sí.

No me queda claro lo que comentas de los cambios en los registros, pero te diré que si tu formulario está basado sobre una tabla/consulta, cada vez que cambias de registro se guardan todas aquellas modificaciones que pudieras haber hecho en el registro.

Si modificas el registro A, al pasar a B los cambios te tendrían que quedar guardados en la tabla automáticamente, pero si te quieres asegurar, añade en algún evento (o al principio en "al activar registro") una linea de guardado: DoCmd. RunCommand acCmdSaveRecord

También te recomendaría que pusieras un punto de interrupción y ejecutaras el código paso a paso, para ver si se van cumpliendo las condiciones o no y que veas tu si el código va corriendo como esperas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas