Actualizar campo formulario
Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84336
Fecha de impresión: 26/Marzo/2026 a las 15:42
Tema: Actualizar campo formulario
Publicado por: Nomada
Asunto: Actualizar campo formulario
Fecha de publicación: 27/Febrero/2019 a las 18:46
|
Buenas, este problema es algo que siempre he deseado hacer, pero no doy con la solución.
En un subformulario "Sub_B" tengo un campo "Notas", el cual sumo en el pie del subformulario en el campo "SumNotas".
En el formulario padre "F_A" tengo otro campo "TotNotas", el cual deseo que se actualice con el valor del campo "SumNotas", cada vez que cambie del campo "Notas".
Lo he logrado hacer con un campo independiente "aaa" en el formulario "F_A" que toma el valor de "SumNotas" y un botón que actualiza, pero, ¿no podría hacerlo automáticamente al cambiar el valor del campo "Notas"?
El código con el que lo estoy intentando al salir del campo "Notas" es:
Me.Parent!TotNotas = Me.Parent!aaa
Gracias y un saludo.
|
Respuestas:
Publicado por: LUDICO
Fecha de publicación: 27/Febrero/2019 a las 21:37
|
Has probado el Evento: Despues de actualizar en el campo "Notas"?
|
Publicado por: Nomada
Fecha de publicación: 28/Febrero/2019 a las 08:13
|
Gracias Ludico. Si, ya lo probé, pero me actualiza el campo "TotNotas" antes de actualizar el campo del pie del subformulario "SumNotas". Con lo cual toma el valor antiguo.
|
Publicado por: Nomada
Fecha de publicación: 01/Marzo/2019 a las 14:22
|
Pensaba que mi problema sería más fácil de solucionar. Yo sigo dándole vueltas para ver si doy con el asunto.
Gracias.
|
Publicado por: emiliove
Fecha de publicación: 01/Marzo/2019 a las 16:51
|
Y si lo haces en el botón al salir del campo "Notas", pero solo le pones algo como:
Private Sub Notas_Exit(Cancel As Integer) call nombrebotonqueactualiza_Click() End Sub
Saludos.
|
Publicado por: Nomada
Fecha de publicación: 04/Marzo/2019 a las 11:12
|
Gracias emiliove El problema es que el botón que actualiza está fuera en el formulario padre, y aunque lo llamo no hace nada.
|
Publicado por: emiliove
Fecha de publicación: 04/Marzo/2019 a las 16:18
|
Y ya lo pusiste como Public en lugar de privado.
Saludos.
|
Publicado por: Nomada
Fecha de publicación: 06/Marzo/2019 a las 10:28
|
Si, lo he puesto como público pero no hace nada. No lo entiendo. Si el campo independiente "aaa" del formulario padre (F_A), cuyo origen de control es:
= [Formulario]![Sub_B]![SumNotas]
funciona bien, es decir, yo actualizo el campo "Notas" del subformulario (Sub_B) y el campo "aaa" del formulario padre (F_A) se actualiza automátimente. Por qué no se actualiza el campo "TotNotas" de este formulario padre, con el siguiente código?:
Me.Parent!TotNotas = Me.Parent!aaa
Gracias.
Pda. Pero tan difícil es, que se actualice un campo de un formulario, al actualizarse un campo del subformulario?
|
Publicado por: Nomada
Fecha de publicación: 11/Marzo/2019 a las 09:30
|
Buenas. En mi búsqueda por las páginas de los gurús, encontré algo relacionado con mi problema en la página de Neckkito en su ejemplo : "Suma de subformulario a formulario", pero después de leer el ejemplo, su resolución era crear un botón en el formulario (igual que el que yo tengo) para actualizar el campo. Con lo cual, tampoco me sirvió. En otro ejemplo del mismo Neckkito (Campo calculado - guardar en tabla), hacía mención a la propiedad "Ciclo" del formulario, pero la tengo en "Registro activo", como él indica.
Resumiendo, continúo en la búsqueda del "Santo grial". Os iré informando. Gracias.
|
Publicado por: mounir
Fecha de publicación: 11/Marzo/2019 a las 17:08
Hola! Lo que necesitas es guardar el resultado de suma en un campo de una tabla?
Como comentas que tienes un campo independiente en el formulario que recoge la suma, lo que haría yo es ponerlo visible y ocultar el campo de la tabla. Y poner en el evento al activar el registro (current) del formulario:
Me.nombrecampotabla = Me.nombrecapoindependiente
De esta forma cuando vayas a otro registro o te muevas por el formulario te lo actualiza.
Es un simple truco hasta que encuentres la solución.
------------- Un Saludo.
|
Publicado por: Nomada
Fecha de publicación: 14/Marzo/2019 a las 08:16
|
Gracias, pero el campo de la tabla no toma el valor.
He probado también en los eventos "Después de actualizar" y "Al cambiar" del campo independiente del formulario, pero tampoco funciona. Realmente cuando el valor de este campo independiente se actualiza o cambia de valor, debería realizar alguno de estos dos eventos, pero nada.
Sigo sin entender, como un campo independiente de un formulario se actualiza perfectamente con el valor de la suma de otro campo independiente de un subformulario, y sin embargo el campo de la tabla del formulario no hay forma de actualizarlo.
Saludos. Pda. Ha seguir buscando
|
Publicado por: Nomada
Fecha de publicación: 25/Marzo/2019 a las 13:28
|
Sigo en busca de una solución a mi problema, haciendo pruebas, mirando por web´s, pero de momento sin resultado positivo.
Aún así, no acabo de entender cómo un humilde usuario ha podido dar con un problema "sin solución". Me cuesta creer que haya tenido tan mala suerte.
Os iré informando de mi búsqueda.
Saludos.
|
Publicado por: xavi
Fecha de publicación: 25/Marzo/2019 a las 13:57
|
Hola,
Acabo de crear una tabla (Tabla1) con un solo campo llamado Notas. He creado un formulario continuo basado en esa tabla con un cuadro de texto al pie (TotNotas) cuyo origen del control es: =Suma([Notas])Si ejecuto el formulario, cualquier modificación de valor se refleja instantáneamente en el pie del formulario. Ahora creo un formulario independiente. Le inserto el subformulario (nombre: sfrData). También añado un cuadro de texto cuyo origen del control es: =[sfrData]![TotNotas]
Funciona perfectamente.
O algo haces distinto o hay algo que se me escapa.
Un saludo
------------- Xavi, un minyó de Terrassa
http://www.llodax.com" rel="nofollow - Mi web
|
Publicado por: Nomada
Fecha de publicación: 26/Marzo/2019 a las 13:21
|
Gracias por atender mi "singular" duda Xavi. Contestando a lo que dices: "Ahora creo un formulario independiente. Le inserto el subformulario (nombre: sfrData). También añado un cuadro de texto cuyo origen del control es: =[sfrData]![TotNotas] Funciona perfectamente." Te diré que en lugar de un formulario independiente, yo tengo un formulario basado en una tabla, y es ahí donde está el campo TotNotas, el cual deseo tome el valor del cuadro de texto SumNotas, cuyo origen de control es SumNotas del subformulario.
saludos.
|
Publicado por: xavi
Fecha de publicación: 26/Marzo/2019 a las 17:32
|
Hola,
Ahora te entiendo... pero no sabría cual es la solución. Y lo digo porque, si se trata de un campo calculado que depende de los valores de un subformulario (y que, por tanto, pueden variar) yo nunca lo almacenaría en la tabla "padre".
Como primera idea se me ocurre que, en el AfterUpdate del control del subformulario, lances un DSum con los criterios adecuados y, el resultado, lo pases al parent!TotNotas. Digo que hagas el DSum en lugar de mirar el cuadro del pie del subformulario porque este puede tardar en actualizarse y que acabes guardando un dato incorrecto.
Es la primera forma que se me ocurre par actualizar.
Ya diras si te vale.
------------- Xavi, un minyó de Terrassa
http://www.llodax.com" rel="nofollow - Mi web
|
Publicado por: Bespano
Fecha de publicación: 04/Octubre/2020 a las 10:43
|
Hola. Aunque hace tiempo del último post en este hilo, lo encontré ayer buscando resolver el mismo problema planteado. Después de no encontrar una solución clara, lo he resuelto de la siguiente manera:
Tengo un formulario Pedidos, con un subformulario PedidosDetalle, en el que incluyo artículos con un importe y una cantidad. En el pie del subformulario tengo la suma de los importes de esos artículos y en el formulario Pedidos tengo los campos Base Imponible, Subtotal, IVA y Total. Estos campos vienen de la tabla, pero como son calculados, tengo el mismo problema que se planteaba en el hilo, no sé como combinar el campo calculado con el de la tabla, para que se actualice cada vez que se modifica un dato en el formulario.
Para resolverlo he hecho lo siguiente. En el fomulario Pedidos he desligado los campos Base Imponible, Subtotal, IVA y Total de la tabla. Ahora su origen de control ya no es el campo equivalente en la tabla, sino que son campos calculados según los datos del formulario. De esta forma, se actualizan automáticamente en pantalla en función de los datos que introducimos. He añadido un botón Guardar al formulario, que ejecuta una consulta de actualización que lo que hace es leer los campos del formulario y actualizarlos en la tabla, y así, con este truco, podemos actualizar los datos de la tabla.
Un segundo truco ha sido crear un formulario (duplicando el formulario Pedidos) que se llama VerPedidos, y que presenta los campos Base Imponible, Subtotal, IVA y Total no como campos calculados sino leyéndolos de la tabla directamente. Abro este formulario en sólo lectura, y así evito posibles errores.
Espero que sirva de ayuda. Saludos
|
|