Discussion:
Guardar Campo Calculado
(demasiado antiguo para responder)
busqueda en access
2010-04-21 20:25:01 UTC
Permalink
Hola, tengo un campo de un Subformulario llamado "DETALLES" (Subformulario de
"FORMULARIO GASTOS") que su origen es una formula " PRECIO*CANTIDAD", este
campo lo ocupo guardar en el campo del "FORMULARIO GASTOS" llamado"Sub
Total", que se guarda en la tabla "GASTOS" la cual es el origen, esto porque
tengo varios subformularios que me dan valor para "Sub Total"

Me explico, en GASTOS, puede haber un "Sub Total" que venga de la tabla
"ventas de productos" y el sub total sera "PRECIO*CANTIDAD", otro de la tabla
"Pagos Planilla" con un origen de "sub total" llamado "Total Planilla", ahora
despues de obtener el "Sub Total", le ocupo sumar IV, restar descuentos etc.
para que me de un Gran Total, por lo que ocupo guardar en la tabla GASTOS, el
valor de Sub Tota.

Espero haberme explicado.

Gracias
Patxi Sanz
2010-04-22 16:08:21 UTC
Permalink
Hola:

Si te es muy complicado volver a calcular ese sub total, podrás guardarlo
siempre y cuando asignes el valor a un control dependiente del formulario
que está tirando de la tabla donde quieres guardarlo, al igual que con el
resto de datos.

Como ahora tienes un control independiente en el formulario donde se muestra
el sub total, puedes agregar otro cuadro de texto con origen en el campo de
la tabla donde quieres guardar el sub total, y asignarle el valor por código
o macro cada vez que actualices algún dato.

Nota: No lo intentes en los eventos Antes de actualizar/Después de
actualizar del control independiente. Como se actualiza automáticamente,
estos eventos no se ejecutan nunca en los controles independientes.
--
Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
busqueda en access
2010-04-22 17:14:01 UTC
Permalink
Ok, muchisimas gracias por responder, lo voy a intentar.
Post by Patxi Sanz
Si te es muy complicado volver a calcular ese sub total, podrás guardarlo
siempre y cuando asignes el valor a un control dependiente del formulario
que está tirando de la tabla donde quieres guardarlo, al igual que con el
resto de datos.
Como ahora tienes un control independiente en el formulario donde se muestra
el sub total, puedes agregar otro cuadro de texto con origen en el campo de
la tabla donde quieres guardar el sub total, y asignarle el valor por código
o macro cada vez que actualices algún dato.
Nota: No lo intentes en los eventos Antes de actualizar/Después de
actualizar del control independiente. Como se actualiza automáticamente,
estos eventos no se ejecutan nunca en los controles independientes.
--
Un saludo,
Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
.
Patxi Sanz
2010-04-23 16:03:49 UTC
Permalink
De nada :-)
--
Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
busqueda en access
2010-04-24 20:26:01 UTC
Permalink
Hola, disculpa pero he estado tratando de asignarle algun codigo para copiar
el dato del control independiente donde esta la operación al dependiente
donde se debe guardar y no he podido, no podrias ayudarme con algun ejemplo.

Gracias
Post by busqueda en access
Ok, muchisimas gracias por responder, lo voy a intentar.
Post by Patxi Sanz
Si te es muy complicado volver a calcular ese sub total, podrás guardarlo
siempre y cuando asignes el valor a un control dependiente del formulario
que está tirando de la tabla donde quieres guardarlo, al igual que con el
resto de datos.
Como ahora tienes un control independiente en el formulario donde se muestra
el sub total, puedes agregar otro cuadro de texto con origen en el campo de
la tabla donde quieres guardar el sub total, y asignarle el valor por código
o macro cada vez que actualices algún dato.
Nota: No lo intentes en los eventos Antes de actualizar/Después de
actualizar del control independiente. Como se actualiza automáticamente,
estos eventos no se ejecutan nunca en los controles independientes.
--
Un saludo,
Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
.
Patxi Sanz
2010-04-25 07:28:02 UTC
Permalink
Todo dependerá de cómo tengas montado todo, y sobre todo del cálculo que
hagas en el control independiente.

Pero como quieres un ejemplo, vamos a suponer lo siguiente:

1.- Tenemos una tabla, de nombre MiTabla, que alimenta a un formulario
llamado MiFormulario.
2.- En el formulario hay 2 controles dependientes:
- Control1, que depende del campo Campo1.
- Control2, que depende del campo Campo2.
3.- En el formulario hay un control independiente, de nombre
ControlIndependiente, con la siguiente fórmula:
= Control1 + Control2 + 5 / 2 - 3
4.- En el formulario agregamos otro control, ControlDependiente, que va a
guardar en la tabla el dato que calcule el control independiente.

Como ya sabemos que el control independiente no va a lanzar un evento Antes
o Después de Actualizar, tenemos que revisar el cálculo, y ver qué controles
o factores intervienen. En este caso, hay 2 controles dependientes: Control1
y Control2.

Así, cada vez que se modifiquen el Control1 o el Control2, sabemos que se
modificará el cálculo y tenemos que actualizar el control dependiente:

Private Sub Control1_AfterUpdate()
Me.ControlDependiente = Me.ControlIndependiente
End Sub

Private Sub Control2_AfterUpdate()
Me.ControlDependiente = Me.ControlIndependiente
End Sub

Otra posibilidad es eliminar el control independiente, y ejecutar el cálculo
cuando se modifiquen los datos en los controles 1 y 2, y asignarlo al
control dependiente directamente:

Private Sub Control1_AfterUpdate()
Me.ControlDependiente = Me.Control1 + Me.Control2 + 5 / 2 - 3
End Sub

Private Sub Control2_AfterUpdate()
Me.ControlDependiente = Me.Control1 + Me.Control2 + 5 / 2 - 3
End Sub

La fórmula es más o menos esta: revisar en el cálculo que hacemos qué
controles puede modificar el usuario directamente, y usar sus eventos
Después de Actualizar para actualizar el valor del control que va a guardar
el dato calculado en la tabla.

Y otra cosa: el control dependiente donde se va a guardar el cálculo debe
estar bloqueado preferiblemente, para evitar que el usuario pueda modificar
ese dato y guardar algo que no es lo que hemos calculado.
--
Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
a***@gmail.com
2013-10-20 10:39:55 UTC
Permalink
Hola buenos dias tengo el mismo dilema
ejecute el ejemplo y funciona perfecto el detalle es que tengo que modificar campo por campo para que esto surta efecto.

existira alguna otra forma de hacerlo.

sin necesidad de modificar cada registro.
quice hacerlo mediante un boton de comando pero no se me da.
me podran ayudar.

Continúe leyendo en narkive:
Loading...