Actualizar formulario abierto al cerrar otro.

Tengo un formulario llamado "EditaGasto" en el cual entre otros introduzco el año en este formulario hay un botón que abre otro formulario emergente al cual ingresos nuevos años el problema es que quisiera que se actualizara al "EditaGasto" al cerrar El formulario "Años"

En el botón para cerrar el formulario "Años" tengo este procedimiento pero no me funciona.

¿Si alguien me puede decir porque?

1 Respuesta

Respuesta
2

Si lo que quieres es que el valor del año que pones en el formulario Años se te pase al formulario EditaGasto, y suponiendo que el cuadro de texto donde va el año en ambos formularios se llama txtAño, el código sería:

Private Sub Comando9_Click()

Forms!EditaGasto.txtAño=Me.txtAño

DoCmd.Close acForm, "Años"

End Sub

Sólo tendrás que cambiar los nombres por los que tengas.

Algo hago mal me ocurre que me deja el campo año en blanco al formulario "EditaGasto" al cerrar el formulario "Años"

Lo tengo así

¿El campo ser llama año en los dos formularios?

Prueba a poner Año entre corchetes, por si diera problemas la ñ

Sigue sin funcionar y veo que tampoco lo actualiza si añado un año no actualiza el cuadro Año del formulario "EditaGasto" he probado que al cerrar el formulario "Años" cierre y abra también el formulario "EditaGasto" lo actualiza pero si estoy en el registro 10 me abre el 1 y tampoco me interesa porque si te descuidas modificas el registro que no es.

Vamos a ver, ¿lo qué tienes en editagasto es un cuadro combinado? Porque si es asi la cosa cambia, pero esas cosas hay q decirlas, que no somos adivinos...

Tienes razón es un cuadro combinado te pido disculpas por mi torpeza.

lo siento

¿Cuál es el origen de ese cuadro combinado? ¿Coge solo un campo o mas de uno?

esto es lo que tengo

al cerrar "Años" se actualizara "EditaGasto"

Encontré la solución

Forms![EditaGasto].[Refresh]
DoCmd.Close

Un saludo. 

Independientemente de que hayas logrado una solución, te comento que no me parece óptima, y, si no me equivoco, no te evita tener que meter manualmente el nuevo año en EditaGastos.

Lo que te preguntaba antes, del origen del cuadro combinado, era lo que tiene en la propiedad "origen de la fila",

Que en tu caso será algo como esto: "SELECT IdAño, Año FROM Años"

Pues bien, a forma más "correcta" de hacerlo sería esta:

Dim miID as Integer

miID=Me.IdAño  'Coges el ID del nuevo año

DoCmd.Close acForm, Me.Name 'Cierras el form Años
Forms!EditaGasto.Año.Requery  'Actualizas los datos del cuadro combinado
Forms!Datos.Año = miID  'Pasas a EditaGastos el nuevo valor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas