Al recibir el foco me genera registros automáticamente

Tengo un formulario con un campo fecha que al recibir el foco, me actualiza el formulario, me copia el resultado de un txt a un campo y me guarda el registro, pero al final le pongo el código para que me lo deje para un nuevo registro y al recibir el foco el campo fecha me hace automáticamente 100 registros seguidos solo con la fecha. ¿Qué podría ser lo que genera esto?

Pongo esto en vba

Private Sub fecha_GotFocus()

DoCmd.RunCommand acCmdRefresh
Me.id = Me.txt_nombre

DoCmd. RunCommand acCmdSaveRecord

DoCmd. GoToRecord,, acNewRec

End Sub

2 respuestas

Respuesta
1

Lo que te pasa, entiendo yo, es normal viendo el código, pues cada ver que entras en ese campo, por cómo tienes el código, estás generando un "bucle" que se repite hasta que cambias el foco de campo. (Al ir a un nuevo registro, el foco queda en el mismo campo, con lo que se ejecuta el código una y otra vez)

Prueba a poner la instrucción de ir al nuevo registro en el evento al perder el enfoque, al salir o después de actualizar.

Hola, gracias por contestar. El problema que tengo es que esto esta creado para leer con un lector de código de barras y necesito que al registrar me guarde y me deje el cursor para un nuevo registro automáticamente y si pongo el código al peder el foco en el campo que registra me da error. ¿Se te ocurre alguna otra idea? He probado con un botón y me lo hace bien. ¿Podría activar por código ese botón al recibir el foco el campo fecha? Gracias

Pues no se me ocurre nada, lo siento. Además, nunca trabajé con un escáner desde access, por lo que desconozco la sistemática de trabajo.

Si tienes un botón y te funciona bien desde él, para activar el código que tengas asociado a ese botón sólo tienes que poner esto:

NombreBoton_Click

Cambiando NombreBoton por el nombre que le tengas (lo puedes ver si sacas sus propiedades yvas a la pestaña Otras->Nombre)

Respuesta

Efectivamente estás haciendo un Bucle, pues terminado el código queda el campo con el foco y vuelve a repetir el código...

Cuéntame que es lo que quieres hacer para dar una respuesta...

¿Tienes un formulario donde llenas campos independientes (nombre, fecha, etc.), y cuando llegas a la fecha quieres que guarde el registro en tu tabla?

¿Por qué lo dejaste posicionado en el campo fecha?, el lector óptico te deja en el mismo campo, pero tú puedes decir en el código el campo donde quieres que se dirija después de guardado el registro (SetFocus).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas