No funciona Exit Sub

Tengo en este procedimiento, despues de que se modifique el registro, pero no sale con el Exit Sub.
¿Dónde puede estar el fallo o el problema, o como se puede salir del procedimiento? GRACIAS
Private Sub Form_AfterUpdate()
MsgBox "0"
Dim A, B, G As Long
Dim C As String
A = 199
C = String$(200, 0)
B = GetUserName(C, A)
Me![USUARIO MODIFICA] = Left$(C, A)
Me![FECHA MODIFICA PARTE] = Now()
Exit Sub
End Sub

1 Respuesta

Respuesta
1
Ya probé tu código con un ejemplo parecido y si me funcionó con el mismo evento, pero me gustaría que me dijeras uno: Me![usuario modifica] Y me![FECHA MODIFICA PARTE] Qué objetos son y a qué campos apuntan (nombre del campo, tabla y tipo de datos...) y dos: la función GetUserName a qué referencia pertenece, ya que mis bibliotecas no la reconocen y no se si también esto tenga que ver... de hecho a mi me corre sin necesidad del select case dado que yo di de alta unos textbox con el nombre de los campos para enviar los datos, pero como no se exactamente cómo estás enviando los resultados al formulario y en qué objetos estás guardando los campos, pues me resulta difícil reproducir el error...
El caso es que el usuario y la fecha se modificanpero después de ejecutar Me![FECHA MODIFICA PARTE] = Now(), de nuevo para arriba y vuelta a empezar. Y estas mismas instrucciones poniéndola por ejemplo al "activar registro" o "antes de actualizar" (Private Sub Form_BeforeUpdate()) si funciona. He hecho varios procedimientos pero nada. Te agradeciria si me pudieras echar una mano con ejemplo como dices con el select case. GRACIAS
Tienes un pequeño problema de ciclado de eventos ya que en el momento de que intentas ejecutar la linea Me![USUARIO MODIFICA]=... Etc, pues el procedimiento se llama a sí mismo y por tanto se cicla pues nunca avanza de esta línea (de hecho nunca llegas al exit sub, para evitar este error te recomiendo que des de alta una variable boleana que al principio del procedimiento se ponga en verdadero si ya entraste al procedimiento de tal modo que brinque a la siguiente linea de código (que también tienes que cuidar porque vuelve a editar y por tanto, vuelve a llamarse a sí mismo...), de este modo puedes crear un switch que seleccione (un select case) que sólo ejecute las lineas que no hayan sido ejecutadas y evitar que la recusividad te cicle... suerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas