** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Regenerar un formulario desde un subform independi
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Regenerar un formulario desde un subform independi

 Responder Responder
Autor
Mensaje
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 927
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Juan Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Regenerar un formulario desde un subform independi
    Enviado: 18/Noviembre/2020 a las 18:59
Hola a tod@s
Tengo un formulario con una serie de campos y en él se encuentra un calendario con su cuadro de texto donde se ve la fecha marcada en el calendario.
Este calendario con su cuadro de texto asociado son independientes del formulario principal y cuando marco la fecha en el calendario aparece en el cuadro de texto pero en el formulario no cambia nada.
El asunto lo he resuelto colocando un botón en el formulario que al hacer click le digo:

Me.form.Requery

Lo que quiero es que al aparecer la nueva fecha en el cuadro de texto se regenere el formulario principal sin tener que aplicar el botón.
Un saludo y muchas gracias de antemano
Juan

jj
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5925
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita mounir Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Noviembre/2020 a las 19:10
Hola!

Prueba poner en el evento de "al activar registro" del formulario

Me.Requery


Editado por mounir - 18/Noviembre/2020 a las 19:11
Un Saludo.
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 927
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Juan Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Noviembre/2020 a las 19:56
Hola mounir
Para que eso se produzca se tiene que cerrar y después abrir el formulario y en este caso no haría falta ni eso, simplemente con cerrar y abrir el formulario ya se modifican los datos del formulario.
Lo que quiero es que se produzcan los cambios después de poner la nueva fecha pero sin salir del formulario.
Lo intentaré explicar mejor. En el formulario hay una serie de campos que varían según la fecha. La secuencia normal es la siguiente: entro al formulario y veo una fecha y unos datos, si quiero ver lo que ocurre en otra fecha, hago el cambio en el calendario pero en el formulario no cambia nada hasta que con el botón le digo lo de Me. Requery
Hasta luego
jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 927
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Juan Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 19/Noviembre/2020 a las 06:28
Buenos días¡
No sé muy bien si con lo que he hecho doy pistas o despisto, pero ahí va.
Lo que pretendo es crear un campo donde traslado la fecha del calendario en el momento que la cambio, para ello el el origen de control del nuevo campo escribo:

=me.MapaCal.Formulario!FechaMapa
Y hasta ahí muy bien, ya tengo en el formulario la fecha que cambia correctamente cuando la cambio en el calendario.
El siguiente paso que pretendo es poner en un evento del cuadro de texto  la instrucción
Me.form.Requery
Pero esto no me funciona ni "al cambiar"ni "DEspues de actualizar" etc solo me funciona en aquellos eventos que tengo que hacer algo· p.e "click", "mover el ratón" etc En cuyo caso estoy en la misma posición que con el botón.
Saludos
Juan
jj
Arriba
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5287
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita emiliove Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 19/Noviembre/2020 a las 15:06
Y si en el evento después de actualizar forzas el guardado con un Docmd.RunComand acCmdSaveRecord

Saludos..
Arriba
Juanmasp Ver desplegable
Nuevo
Nuevo


Unido: 21/Abril/2006
Estado: Sin conexión
Puntos: 26
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Juanmasp Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 19/Noviembre/2020 a las 15:12
Hola

En el subformulario, al cambiar la fecha, pon :  Me.Parent.Form.Requery

El parent hace referencia al formulario que contiene es subformulario.

Ten en cuenta que, si el subformulario independiente lo abres en algún otro proceso sin que esté dentro de otro formulario, te dará error porque el Parent no existirá.

Saludos.
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 927
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Juan Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 19/Noviembre/2020 a las 17:23
Hola Emilove y Juanmasp
Gracias por atenderme
Para Juanmasp.- El parent de donde está el calendario y la fecha, es el propio calendario y éste, pienso yo, no necesita el Requery, el que lo necesita es el formulario que contiene al calendario y ahora la fecha que he trasladado a un campo de texto.
Emilove.- No sé si sigo bien tus indicaciones, en el evento del cuadro de texto donde llevo la fecha del calendrio "después de Actualizar" he puesto:

Docmd.RunComand ac CmdSave Record
Me.form.Requery

Pero no regenera nada
Un saludo y gracias
Juan

jj
Arriba
Dabellaso Ver desplegable
Asiduo
Asiduo


Unido: 18/Noviembre/2012
Localización: España
Estado: Sin conexión
Puntos: 323
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Dabellaso Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Noviembre/2020 a las 19:33
Publicado originalmente por Juan Juan escribió:

El parent de donde está el calendario y la fecha, es el propio calendario y éste, pienso yo, no necesita el Requery, el que lo necesita es el formulario que contiene al calendario y ahora la fecha que he trasladado a un campo de texto.

Creo que has confundido terminos, cuando dices: "El parent de donde está el calendario y la fecha, es el propio calendario" si analizas eso, verás que no tiene sentido, de ser así, no seria el Parent, si no el propio formulario y el título de la consulta seria erróneo

Como indica Juanmasp "Me.Parent.Form.Requery" actualizará el formulario que contiene el calendario, es decir, el formulario principal que contiene el subformulario con el calendario.

Por otro lado está el tema de cuando actualizar, y para eso, creo que como dica Emilove, el mejor lugar es en el evento de "después de actualizar" del control cuyo valor que cambies.

Si por lo que sea el  "Me.Parent.Form.Requery" no te convence, siempre podrás actualizar el formulario que quieras usando la colección de formularios abiertos y su nombre con:

 Forms("NombreDelFormularioQueQuieroActualizar").Requery


El saber no ocupa lugar, sólo tiempo
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1247
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 21/Noviembre/2020 a las 22:42
Supongo que el usuario es quien selecciona la fecha en el calendario. Si es así, revisa los eventos de ese calendario, o ve probando de uno en uno para ver con cuál te funciona mejor el Requery. En el cuadro de texto no te funcionará porque al ser calculado, los eventos Después de actualizar y similares no se lanzan al no ser el usuario el que modifica el valor directamente.
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 927
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Juan Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 22/Noviembre/2020 a las 07:32
Buenos días a tod@s
En primer lugar agradecer a Mounir, Emilove, Juanmasp, Dallebaso, Pitxiku y a todos los que habéis intentado ayudarme en este asunto.
Deciros que funciona.
Intentaré aclarar lo que he hecho:
Estructura:
Formulario principal.- MapaPzas
Subformulario (Independiente).-MapaCal
Calendario (dentro de MapaCal).-Calendar4
Cuadro de texto (dentro de "MapaCal") donde aparece la fecha marcada en el calendario.- FechaMapa

El elenco de Eventos que aparecen en el Calendar4 son:
Al actualizar
Al salir
Al entrar
Al percibir el enfoque
Al perder el enfoque
Independientemente del código empleado, ninguno de esos servía para mi propósito,.
Lo que he hecho es añadir el evento "Después de actualizar" donde poniendo tanto:
Me.form.Parent.Requery como Forms("MapaPzas").Requery Funciona perfectamente.
Como dice Pitxiku en el evento "Después de actualizar" del cuadro de texto no funciona con ninguno de los códigos.
Reitero mi agradecimiento a todos
Saludos
Juan
Nota: Por mi parte podéis quitar el hilo




jj
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable