Access - Actualizar formulario

 
Vista:
sin imagen de perfil

Actualizar formulario

Publicado por Paulina (91 intervenciones) el 26/01/2023 23:29:13
Buenas tardes, tengo una duda, tratare de explicarlo.

Tengo un formulario con un subformulario, dentro del subformulario tengo un total =Suma([KG]*[PRECIO]) y dentro del formulario esta ese total =[DETALLE Subformulario].[Formulario]![TOTALSUB].

El problema es que tengo que darle tab o enter a el importe para que me cambie el total del formulario, y lo que quiero es que me actualice o cambie el total del formulario, si cambia las etiquetas de Kg o PRECIO, y no esperar a dar puro enter.

Si es que se puede en que evento dentro del total tendría que ponerlo y que tendría que poner.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Actualizar formulario

Publicado por Anonimo (3319 intervenciones) el 27/01/2023 00:34:57
El evento 'después de actualizar' de ambos cuadros de texto creo que es el mas adecuado.

Para refrescar la presentación de los formularios hay tres niveles:

.- El mas suave es REPAINT que refresca la presentación (redibuja la pantalla) ==>> Me.Repaint
.- El intermedio es RECALC que actualiza los cálculos y añade el Repaint. ==>> Me.Recalc
.- El mas poderoso es REQUERY que vuelve a cargar el origen de datos, aplica el recalc y el Repaint. ==>> Me.Requery
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Actualizar formulario

Publicado por Paulina (91 intervenciones) el 27/01/2023 01:05:18
Gracias por tu ayuda, pero sigue igual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar formulario

Publicado por Anonimo (3319 intervenciones) el 27/01/2023 03:46:53
La información seria mas completa si fuera acompañada de lo que se ha intentado.

Si no funciona (tras revisar el post inicial) me surge una duda:
¿Cómo se modifican los datos: kilos o precio?.

Si se introducen de forma interactiva, Access no los tendrá en cuenta mientras no se asienten en el control (asiento que normalmente se hace al salir / cambiar a otro objeto).

Para validar el cambio en el objeto se requiere del usuario que tras introducir el dato pulse 'Enter', 'Tab' o seleccionar otro objeto con el ratón, momento en el que el dato introducido y que esta en su propiedad Text, pase a su propiedad Value y el valor de/en Value pase a su propiedad 'OldValue'.

Si no se dan esas condiciones (el método de adquisición de datos es otro) no se podrá automatizar mediante eventos (los eventos solo se producen al interactuar con el usuario).

Para dar una solución al problema planteado se necesita conocer como se modifican los datos para proponer una alternativa.

Por ejemplo: si el dato tiene una longitud determinada, se puede evaluar en tiempo de ejecución que se introdujo el numero de caracteres esperado y desencadenar los eventos (personalmente no lo recomiendo, lo dejaría para casos muy específicos)

Otra pregunta, al desplazarse por los registros (es valido un avance o retroceso de página) se supone que cambiaran los valores de kilos o precios ¿se regenera la presentación del dato en el principal?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Actualizar formulario

Publicado por Paulina (91 intervenciones) el 27/01/2023 04:18:08
Soy totalmente nueva en access, no se mucho del tema.
¿Cómo se modifican los datos: kilos o precio?.El importe (kG * PRECIO) se actualiza cambiando cualquiera de los dos
¿se regenera la presentación del dato en el principal?. no se a cual dato te refieres

Mi subformulario: (mas o menos ):

Producto kg precio importe
Arroz 1.1 25 27.50
Harina 1.0 52 52.00

en pie de formulario tengo el total así:

total =Suma([KG]*[PRECIO])


*** importe (kg*precio)*****


y en formulario:
=[DETALLE Subformulario].[Formulario]![TOTALSUB]

Ahora actualiza perfectamente el importe,si doy Tab, enter o hasta moviendo las flecha al cambiar cualquiera, precio o kg.
Pero el total no me lo cambiar hasta pasar a la siguiente línea para agregar otro producto.

Desgraciadamente no se muchos conceptos, he logrado llegar hasta ahi, por consultas que he hecho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar formulario

Publicado por Anonimo (3319 intervenciones) el 27/01/2023 05:22:00
No es un problema, es el funcionamiento 'normal' de los formularios, los datos se recalculan en base a los valores reales en la tabla y se asientan en la tabla al cambiar de registro.

Se puede forzar otro comportamiento, esto es: al modificar un valor (sea el precio o la cantidad) se guarda el registro.

Para el campo 'Precio':
Se utilizaría el evento 'Después de actualizar' en el que se seleccionaría 'Procedimiento de evento' y ... click en los tres puntitos.
Se abrirá la ventana de VBA con algo similar a:

1
2
3
Private Sub Precio_BeforeUpdate(Cancel As Integer)
 
End Sub

Se el añade esta línea: DoCmd.RunCommand acCmdSaveRecord y deberá quedar así:

1
2
3
Private Sub Precio_BeforeUpdate(Cancel As Integer)
DoCmd.RunCommand acCmdSaveRecord
End Sub

Se repite lo mismo en el campo Kg y se guardan los cambios.

Si todo va bien el problema queda resuelto, si da error es que las reglas de la tabla imponen condiciones (por ejemplo: que los campos requeridos tengan valor) coméntalo y aplicamos un parche adecuado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Actualizar formulario

Publicado por Paulina (91 intervenciones) el 27/01/2023 05:32:52
Listo! muchas gracias! =)

Tengo muchas dudas, estaré molestando un rato por aquí.

De nuevo gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar