Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Guardar Campo Calculado

2,244 views
Skip to first unread message

busqueda en access

unread,
Apr 21, 2010, 4:25:01 PM4/21/10
to
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

unread,
Apr 22, 2010, 12:08:21 PM4/22/10
to
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

unread,
Apr 22, 2010, 1:14:01 PM4/22/10
to
Ok, muchisimas gracias por responder, lo voy a intentar.

"Patxi Sanz" escribió:

> .
>

Patxi Sanz

unread,
Apr 23, 2010, 12:03:49 PM4/23/10
to
De nada :-)

busqueda en access

unread,
Apr 24, 2010, 4:26:01 PM4/24/10
to
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

"busqueda en access" escribió:

Patxi Sanz

unread,
Apr 25, 2010, 3:28:02 AM4/25/10
to
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.

a.ram...@gmail.com

unread,
Oct 20, 2013, 6:39:55 AM10/20/13
to
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.
0 new messages