** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Refrescar consulta al cambiar en formulario
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRefrescar consulta al cambiar en formulario

 Responder Responder Página  12>
Autor
Mensaje
sauro69 Ver desplegable
Habitual
Habitual


Unido: 27/Diciembre/2005
Localización: España
Estado: Sin conexión
Puntos: 109
Enlace directo a este mensaje Tema: Refrescar consulta al cambiar en formulario
    Enviado: 19/Febrero/2016 a las 17:36
Buenas tardes, mi problema es el siguiente. Tengo un subformulario en donde introduzco la fecha en la que se va revisando a los usuarios. Dentro del mismo formulario tengo un segundo subformulario en donde me indica la fecha de la próxima revisión (campo calculado en donde sumo 182 a la fecha de la última revisión, o fecha de alta en su defecto).
Bien, pues el problema es que cuando introduzco una nueva revisión, no me cambia la fecha de la próxima.

Como con código no tengo suficientes conocimientos, estaba intentando con una macro en donde después de actualizar el registro del primer subformulario, refrescara la consulta en donde calcula la fecha de la siguiente revisión, pero no termino de conseguirlo.

Seguro que con código es sencillísimo, para los que sabéis claro.

Un saludo,
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5140
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 18:21
Hola!

Pues en ele vento de Salir del control "Nueva Regvisión" pones:

     Me!Nombredel2ºformulario.Form!Requery

Con Macros en la acción de "EsablecerValor" y donde pone elemento lo seleccionas y aparecen ahi tres puntos suspensivos le presionas y se te abre el generador de expresiones buscas en formularios el segundo formulario y el campo fecha y luego de eso haces lo mismo y seleccionas el mismo campo y en esta vez le sumas 182, es decir no hace falta hacer campos calculadfos en una consulta.
Espero haberme explicado bien y no te haya liado mas las cosas.


       
Un Saludo.
Arriba
sauro69 Ver desplegable
Habitual
Habitual


Unido: 27/Diciembre/2005
Localización: España
Estado: Sin conexión
Puntos: 109
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 18:50
El utilizar un campo calculado en una consulta es que de esa forma ya tengo preparada la segunda parte, que es un listado de los usuarios a los que les toca el mes que necesiten.

La primera opción me da error, me pone "Se esperaba: =". No sé si el problema es que en un formulario principal tengo un control de pestaña, y dentro de una pestaña está el primer subformulario "Valoraciones" y un segundo subformulario "ProximaRevision".

Lo que necesito es que al añadir un registro en el subformulario "Valoraciones", recalcule la fecha que aparece en el subformulario "ProximaRevision". Estaba intentando en el evento "Después de actualizar" y "Después de insertar"

Espero que me haya explicado bien, porque un poco lioso sí que es.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5140
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 19:24
Hola!

Prueba en el evento nde al salir o despues de actualizar del conrol de fecha lo siguiente:

Me.Parent![ProximaRevision].Requery
Un Saludo.
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 19:32
El numero 182 ¿con que se corresponde? .... Access tiene funciones especificas para añadir periodos y sin perder de vista que es una fecha (la función DateAdd), pero lo que no parece muy claro es como y cuando se le indique que 'sustituya' la fecha anterior con la actualizada.

Mas bien parece que se trata de AÑADIR un item mas y que en ese item (nuevo registro) tome como fecha de partida la fecha de la ultima revision (o la de inicio si fuera el primer registro), actualmente (con toda probabilidad) esta tomando como referente la fecha inicial y por ello el calculo se repite.
Arriba
sauro69 Ver desplegable
Habitual
Habitual


Unido: 27/Diciembre/2005
Localización: España
Estado: Sin conexión
Puntos: 109
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 20:15
182 es una forma rápida de añadir 6 meses, que es la previsión máxima para revisar a todos los usuarios.
 
He probado lo que indica mounir, para que cuando actualice el campo fecha (incluido en el subformulario "Valoraciones") refresque el otro subformulario
 
Private Sub FECHA_AfterUpdate()
    Me.[SubformularioConsultaProximaRevision]!Form.Requery
End Sub
Pero me da error 2465  "Access no encuentra el campo '|1'
 
El "SubformularioConsultaProximaRevision" muestra el campo "Expr1" (que es el campo calculado en la consulta anteriormente descrita)
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5140
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 20:26
Hola!

Has probado?
Me.Parent![SubformularioConsultaProximaRevision].Requery

Mírate este Enlace.
Un Saludo.
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 20:28
Lo optimo (para añadir meses) seria:
NuevaFecha = DateAdd("m", 6, FechaOrigen)

En esa expresión 'm' indica que el periodo son meses y 6 es el numero de meses (el dato numérico ha de ser un numero entero)
Arriba
sauro69 Ver desplegable
Habitual
Habitual


Unido: 27/Diciembre/2005
Localización: España
Estado: Sin conexión
Puntos: 109
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 20:44
Gracias Feijoo, mi método era más de andar por casa.
 
Respecto a lo otro si lo he probado pero me dice que Access no encuentra el campo "SubformularioConsultaProximaRevision"
 
He mirado el enlace que me indicabas y creo que me estaba explicando mal.
Dentro del control de fichas, en una pestaña tengo el subformulario Valoraciones (para meter registros cada vez que se realiza una valoración) y otro subformulario "Sub...proximarevision" dentro de la misma pestaña, pero no dentro del subformulario Valoraciones.
 
La historia es que cuando meta un nuevo registro en el subform valoraciones, automáticamente recalcule el campo "Expr1" incluido en el subform ...proximarevision
 
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5140
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 20:50
Hola!

Podrías subir un demo de tu ejemplo para echarla un vistazo?
Un Saludo.
Arriba
sauro69 Ver desplegable
Habitual
Habitual


Unido: 27/Diciembre/2005
Localización: España
Estado: Sin conexión
Puntos: 109
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 20:58
Tendría que pedir permiso porque es de una asociación y hay datos sanitarios y personales. si consigo dejarla con datos de prueba y me dejan lo subiría.
 
He seguido probando pero me da siempre el mismo error "no encuentra el campo"
 
Estoy pensando la opción de que en lugar de que coja el valor de la consulta, crear un campo que calcule directamente en el formulario la fecha como ha dicho Feijoo, partiendo del valor de la fecha del subformulario Valoraciones. El problema puede ser como le digo que coja la última fecha, si tuviese varias.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5140
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 21:05
Hola!

De esta forma:

Form_SubformularioConsultaProximaRevision.Requery

hay que probar hasta dar con ello.
Un Saludo.
Arriba
MexMan70 Ver desplegable
Colaborador
Colaborador


Unido: 17/Julio/2007
Localización: DarkSide
Estado: Sin conexión
Puntos: 9227
Enlace directo a este mensaje Enviado: 19/Febrero/2016 a las 22:23
Hola a todos  !

sauro69:
Hay que usar la sintaxis de manera adecuada, para ello mira el siguiente enlace:

http://www.llodax.com/Tutoriales/SintaxisSubForms.htm
OneDrive: http://sdrv.ms/Vk6eJd
Arriba
sauro69 Ver desplegable
Habitual
Habitual


Unido: 27/Diciembre/2005
Localización: España
Estado: Sin conexión
Puntos: 109
Enlace directo a este mensaje Enviado: 20/Febrero/2016 a las 21:20
Cuando añado una nueva valoración, no consigo que me actualice la próxima fecha en el momento, pero si cierro el formulario y lo vuelvo a abrir, sí lo calcula correctamente. Por tanto, la consulta funciona, lo que me falta es que refresque el subformulario.
He mirado varias veces ese enlace, pero algo debo hacer mal. He probado todas las opciones, pero siempre me da el mismo error.
Yo lo que entiendo es que estoy en el subformulario1 y le añado el evento "después de actualizar" al campo "fecha" y quiero hacer referencia a un subformulario 2 (no está dentro del subform1). Como dudaba si Requery se trataba de una propiedad del formulario o subformulario he probado las cuatro posibilidades y nada.
 
Por lo menos, funciona saliendo y entrando de nuevo al formulario, no es muy profesional (por no decir, chapucero), pero bueno.
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 20/Febrero/2016 a las 22:59
A ver si lo que al final falta, es guardar el registro ANTES de ejecutar el refresco (cuando se sale, guarda las modificaciones, por ello al volver a abrirlo aparecen los datos guardados).
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable