Actualizar Tabla con campos de subformulario al perder foco en el ultimo campo

Tengo una formulario llamado "entrada rápidas" enlazado a una tabla con el mismo nombre, en el formulario hay dos subinformes uno con vista formulario y otro con vista hoja de datos, los dos enlazan con la misma tabla, lo que he intentado hacer es que cuando se rellene los campos en el subformulario de vista formulario, al introducir el ultimo campo se actualice el subformulario con vista de Hoja de datos, el problema esta que cuando en el ultimo campo añado esta linea de código en el procedimiento al perder enfoque del subformulario Vista Formulario

DoCmd. RunSQL "update Entrada Rápida"

O esta otra

DoCmd.RunSQL "update Entrada Rápida set F_Entrada = (& Val(Me.txt_pedido.Value) &"""
Me da un error y no se como arreglarlo para que funcione.

Espero haberme expresado de la forma mas precisa para que me puedan ayudar.

1 respuesta

Respuesta
1

Estás partiendo de un razonamiento erróneo. Si, como dices, ambos subformularios están ligados a la misma tabla, no necesitas insertar ningún dato porque los datos ya están ahí. Otra cosa es que la información del subformulario no se refresque y no te los muestre.

Voy a suponer lo siguiente:

- El formulario principal lo llamaré "FPpal"

- El subformulario con vista formulario lo llamaré "subFrm1"

- El subformulario con vista hoja de datos lo llamaré "subFrm2"

Entonces lo que tienes que hacer es situar subFrm1 en vista diseño, sacar las propiedades del subformulario e irte a Pestaña Eventos -> Al activar registro, y ahí le generas este simple código:

...

Private Sub...

Forms!FPpal.subFrm2.Requery

End Sub

...

Así te debería refrescar la información del subFrm2 cada vez que en el subFrm1 añadas un nuevo registro o te desplaces por sus registros.

A ver si así te funciona.

Hola me indica un error 2450 en tiempo de ejecución no se encuentra el formulario FPal al que hace referencia. y el formulario existe y se llama exactamente así.

No sé cómo lo habrás montado, pero la solución que te di funciona porque lo he comprobado. Échale un vistazo a esta BD (http://www.mediafire.com/?yda5bc53t2ccaar) y verás el funcionamiento. Así podrás compararla con lo que has hecho a ver si encuentras la diferencia.

Ya me dirás.

Ok el fallo esta cuando lo ejecuto desde el formulario de menú, si lo ejecuto desde el formulario suyo no da ningún error y funciona perfectamente, ¿sabes como podría arreglarlo? tengo otro problema con el dichoso menú he puesto un botón de imprimir registro si lo arranco con el menú me imprime todos los registros, sin embargo si lo hago sin el menú lo hace correctamente, quizás tenga que ver estos errores.

GRACIAS por tu gran ayuda, no te he comentado que la primera vez que me respondiste lo hiciste fenomenalmente, era exactamente mi problema, me entendiste perfectamente.

GRACIAS DE NUEVO.

A veces damos por supuesto cosas que el usuario sabe y "metemos la pata". Ahora, releyendo el hilo, me he dado cuenta de que debería haberte dicho que el error que te marcaba lo suele dar porque el formulario no está abierto (evidentemente sí lo tienes en los objetos-formularios). Para que el código actúe siempre busca en los formularios que están abiertos, no en los cerrados. Y, si quisieras actuar sobre uno cerrado, no te queda más remedio que seguir la secuencia: abrirlo, modificar lo que tengas que modificar (y si es sobre un registro en concreto abrirlo filtrado por ese registro) y cerrarlo de nuevo.

Respecto al tema de la impresión, entiendo que lo que imprimes es un informe, ¿verdad? Si lo haces así tendrías que abrir, desde el menú, el informe filtrado por el registro que quieres imprimir. Para filtrarlo la estructura de apertura del informe sería, por ejemplo (suponiendo que lo filtras por un campo [Id]):

DoCmd.openreport "NombreInforme",,,"[Id]=X"

Donde X sería el identificador del registro que quieres imprimir.

Al final he tomado la inspiración del archivo que me mandaste, he realizado un formulario de menú con botones que abre cada formulario en una pestaña nueva y no el predefinido de access, que al dar al botón te abre los formularios en el mismo marco, así que ahora al darle a un botón abre el formulario como una pestaña mas y funciona todo correctamente, perfecto, muchas gracias por tu ayuda. Me has ayudado muy bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas