Actualizar tabla desde un formulario

Tengo un formulario de introducción de datos mediante un cuadro combinado cuando este dato no existe abre un formulario llamado componente en modo añadir, el código que uso para cerrar el formulario componentes

Private Sub Comando43_Click()
DoCmd. RunCommand acCmdRefresh
Me. Refresh
DoCmd. Close
End Sub

El prblema es que cuando intento buscar en el cuadro combinado el valor nuevo no lo encuentra, y no se como hacerlo, lo he intentado mediante actualizar o refrescar

1 Respuesta

Respuesta
2

Las dos primeras líneas de ese código, no te sirven para nada, porque solo "actualizas" el formulario en el que metes los datos.

Lo que tienes que hacer es recargar el cuadro combinado del primer formulario, algo que puedes hacer así:

Private Sub Comando43_Click()
Forms("NombrePrimerFormulario").NombreCuadroCombinado. Requery
DoCmd. Close
End Sub

Lo anterior, suponiendo, claro, que el formulario que abres está vinculado a la tabla de la que coge los datos el cuadro combinado...

He hecho lo que me dices

Private Sub Comando43_Click()
Forms("4_ensayo").nombre_insumo.Requery
DoCmd.Close
End Sub

El formulario que salta cuando en el cuadro combinado no existe el valor se llama insumo, y el formulario que contiene el cuadro combinado se llama 4_ensayo, este coge los datos del primer formulario por un cuadro de búsqueda, pero no me hace nada

Gracias por tu ayuda

No me queda nada clara tu explicación...

A ver, un cuadro combinado siempre a va acoger los datos de una o más tablas, ya sea directamente o por medio de una consulta, pero nunca va a coger los datos de un formulario.

Según interpreto tu duda, tienes un formulario "A", con un cuadro combinado "CC" que coge los valores de una tabla (si el origen del cuadro combinado es una lista de valores, la cosa cambia bastante).

Si tratas de meter un valor que no existe en el desplegable del cuadro combinado, se te abre (supongo que con lo que has programado en el evento "al no estar en la lista") un formulario "B" (dejando abierto el formulario "A"), donde pones el nuevo valor, y te lo guarda en la tabla correspondiente.

Si eso es así, en el evento del botón con el que cierras el formulario "B", con el código:

Forms("B"). CC. Requery
DoCmd. Close

al volver al formulario "A" ya tendrías en el desplegable el nuevo valor listo para elegirlo. Pero no verás "que pasa algo", salvo que te salte algún error.

De todas formas, si tu formulario "B" solo tiene un cuadro de texto para volver a poner el dato que ya has puesto en el combinado del formulario "A", puedes hacer el proceso directamente con un código de este estilo:

Private Sub CC_NotInList(NewData As String, Response As Integer)
    Response = acDataErrContinue
    CurrentDb.Execute "INSERT INTO TuTabla(TuCampo) VALUES ('" & NewData & "')"
    Me.CC= NewData
    Me. OtroCampo. SetFocus
    Me. CC. Requery
End Sub

Te dejo un enlace a un artículo que escribí sobre cuadros combinados, en el que explico cómo añadir elementos que no están en la lista: http://neckkito.xyz/nck/index.php?option=com_content&view=article&id=127:cuadros-combinados-inteligentes&catid=16:controles

Y si ves que no te sale, dime exactamente como es tu cuadro combinado (su "origen de fila"), y el código del evento "al no estar en la lista" y te preparo un ejemplo similar a lo que tienes.

O si lo prefieres, pásame una copia de tu BD (sin datos reales) y te lo programo yo

Ok si puedes mándame tu correo y te la mando

Súbela a filebig, Dropbox o similar y pon aquí el enlace de descarga

https://www.dropbox.com/sh/tg68pek806c3h9j/AABjl7dwQtqoW2O5rEJyOe4ya?dl=0 

Aquí la tienes y muchísimas gracias me estas salvando la vida

Ahí tienes: http://www.filebig.net/files/iLLjBeKweM  

La solución es un poco diferente porque hay muchas cosas que no habías indicado, como que el formulario donde tienes el combinado es en realidad un subformulario, que en el formulario "emergente" rellenas más datos...

¡Gracias! 

Una solución excelente y muy sencilla ( para el que sabe claro ), me has facilitado el trabajo una barbaridad, de nuevo  Muchísimas Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas