Estoy haciendo una base de datos con acces 2016,

Tengo las tablas relacionadas, y en los formularios, tanto principal como secundarios estan vinculados por los camposcorrectamente, y lo que necesito es que al actualizar el campo fecha, pase el enfoque a un campo del subform, pero este es un dato fijo( valor predeterminado) y necesito que al segur tabulando se guarde el registro pertinente en la tabla donde está el campo.

2 respuestas

Respuesta
2

Si tengo el formulario y escribo una fecha. Puedes ver que el cursor aún está en el control Fecha

Cuando pulso Enter, el cursor se va al control Categoría del subformulario

En este caso, en el evento Después de actualizar del control FechaVenta le tengo puesto

Private Sub FechaVenta_AfterUpdate()
Me. DetalleVenta. SetFocus
Me. DetalleVenta.Form! Categoria. SetFocus
End Sub

Con respecto a lo otro, si el subformulario depende de una tabla no necesitas guardar, ya que Access, por defecto, si no le dices nada en contra, ya lo guarda en la tabla. Pero si pese a eso, quieres poner algo, en el evento Después de actualizar de algún control del subformulario puedes poner

Docmd. Runcommand accmdsaverecord

¡Gracias! 

Pero no me funciona

Sigo probando, y observo que si tabulo, me va pasando por cada uno de los campos, según su orden, pero si pulso clic, el cursor no se mueve del campo

la anotación anterior, no la tengas en consideración, ya que al hacer cloc con el intro si va corriendo por todos los campos hasta que llego al ultimo que es el campo de turno y hay se queda.

Discúlpame si soy un tanto pesado, pero he seguido haciendo pruebas y si le pulso en los botones de navegación, observo que tampocome cuenta el contador que tiene, no lo entiendo

Otra prueba, he hecho una tabla nueva y curioso, si le pongo un valor predeterminado y le doy a intro, no hace nad y no guarda nada, te envío una imagen al respecto y no veo el error.

Muchas gracias por tu paciencia

Perdón ahora la imagen

Vamos a hacer una cosa, que creo que es lo mejor. Si quieres, repito, si quieres y la base no tiene datos confidenciales, haz una copia y me la mandas a [email protected]

Si lo haces, en el asunto del mensaje pon tu alias Rafael Ra, ya que si no sé quien me escribe ni los abro.

Respuesta
1

Si para ir a un campo del formulario, el origen es un campo cualquiera del formulario principal, se tiene que hacer en dos pasos:

1.- Ir al subformulario (enviarle el foco)
2.- Ir al campo (del subformulario), esto es: enviarle el foco.

Los campos que tengan un valor predeterminado lo asumirán al guardar el registro, no se precisa hacer nada (excepto modificar el valor si no es el adecuado).

Normalmente los registros se 'autoguardan' al cambiar de registro (o al salir del formulario) y a voluntad con macros, VBA ... solo se requiere que los campos que tengan activada su propiedad 'requerido' tengan el valor que les corresponda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas