¿Es posible actualizar combobox después de regresar de un formulario Hijo?

Tengo un formulario pedidos y cuando veo que me falta un producto le doy doble click en el código y me abre el formulario Productos en un nuevo registro para poder agregarlo, pero cuando cierro este y apretó en el combobox del código en la lista no me aparece el nuevo producto que agregue.

Como es el formulario principal de Productos no quiero ponerle nada en el botón exit referido al formulario Pedidos porque también lo llamo desde otros formulario.

La única forma que se me actualiza en apretando F5.

Por supuesto que le puse me. IdArticulo. Requery pero para que me ando OnFocus o OnCLick o probé con varios, tengo que darle un click fuera del control primero.

La idea es que vuelva y ya este actualizado ni bien presiono la pestañita del combobox.

No es más que dar doble click en el combobox para agregar un dato y cuando reguesa que ya figure ahí.

2 respuestas

Respuesta
2

Yo le pondría, si he entendido bien tu problema, en el evento "Al cerrar" del formulario "Productos" lo siguiente:

Private Sub Form_Close()
Dim frm As AccessObject
For Each frm In CurrentProject.AllForms
  If frm.Name = "Pedidos" And frm.IsLoaded = True Then
    Forms("Pedidos").cboProductos.Requery
    Exit For
  End If
Next
End Sub

siendo "Pedidos" el nombre del formulario, y "cboProductos" el nombre del cuadro combinado.

El código solo actualizará el cuadro combinado si cierras el formulario Productos y está cargado el formulario Pedidos, de otra forma, no hará nada.

Un saludo.


     bit.ly/ForoNkSv 

Gracias primero por responder, explico un poco más, es un Formulario pedidos que tiene el subformulario Renglón de pedidos, en el cual elijo los artículos, cuando falta uno, doy doble click en el campo de código y se me abre el formulario de Artículos en donde agrego el que falta. Al cerrar y vuelve el cursor al combobox de código no se actualiza.

Probé con lo tuyo pero también le tenia que agregar el subformulario porque el combobox esta en idArticulo dentro del subformulario de renglonPedidos. Y me tira error no me tomaba ninguno, probé sin comillas, con ! Entre medio y no me lo encontraba.

Seguiré probando. Me quiero suponer que debe ser algo fácil pero no me doy cuenta.

Es como si fueras a elegir en un combobox algo y al no estar, doble click que te abre el form para agregarlo y al volver, no se te actualiza, hay que apretar F5

Saludos

Vale, si el combinado está en un subformulario, el código sería:

Private Sub Form_Close()
Dim frm As AccessObject
For Each frm In CurrentProject.AllForms
  If frm.Name = "Pedidos" And frm.IsLoaded = True Then
    Forms("Pedidos").[Renglón de pedidos].Form.cboProductos.Requery
    Exit For
  End If
Next
End Sub

siendo  "Renglón de pedidos" el nombre del subformulario. Ten en cuenta que los nombres de los objetos, cuando llevan espacios, acentos o "cosas raras" deben ir en el código entre corchetes.

¡Gracias! 

Perfecto, funciono genial!

Me alegra ver que te sirvió mi respuesta, y por eso, no dejes de valorarla.

Respuesta
2

Pablo:Me queda alguna duda sobre tu proceso, pero si Insertas un Nuevo dato en un SubFormulario y quieres actualizarlo, por alguna razón que ahora no se ver, puedes programar el Evento AfterInsert del mismo y poner algo así

Private Sub Form_AfterInsert()

Me.Requery

End Sub

Un saludo >> Jacinto

Gracias primero por responder, explico un poco más, es un Formulario pedidos que tiene el subformulario Renglón de pedidos, en el cual elijo los artículos, cuando falta uno, doy doble click en el campo de código y se me abre el formulario de Artículos en donde agrego el que falta. Al cerrar y vuelve el cursor al combobox de código no se actualiza.

Probé con lo que decís pero para que toma AfterInsert() tengo que cliquear primero en otro lugar, como te comentaba ya probé varios, AlEntrar AlhacerFoco AlActivar y para todos tengo que cliquear primero en otro lugar.

Pablo: Siendo como apuntas, entonces iría en la linea de lo que te sugiere Sveinbjorn, poniendo el evento en el Form_Close del Formulario Artículos y haciendo referencia "Completa" al SubFormulario Renglón de Pedidos si es que se llama así.

Dicho ésto pruébalo también en el Evento que te comentaba, pero en el Formulario de Artículos.

Private Sub Form_AfterInsert()
Forms!Pedidos![Renglon de Pedidos].Form.CboProductos.Requery 'A esto me refería con referencia Completa
End Sub

Los nombres los adecúas a los que tengas, teniendo en cuenta que los Nombres a mi entender  "raros" ha de estar entre corchetes. Espero así te funcione. Si por alguna razón necesitas una ampliación de la respuesta de Sveinbjorn, por favor ponle a él una nota. Evidentemente por cuestiones éticas. Un saludo >> Jacinto

¡Gracias!

Excelente! Eso si me funciono, por eso me parecía que en 1 línea lo podía solucionar, el único inconveniente es que solo me sirve para el formulario pedidos, si llamo al formulario Artículos desde otro me va a dar error porque no va a encontrar al de pedidos, es más compli la de Sveinbjorn pero le voy a buscar la vuelta, así lo soluciono con 1 solo formulario.

Desde ya Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas