Access - Suma de Campo en Subformulario

   
Vista:

Suma de Campo en Subformulario

Publicado por GONZALO (7 intervenciones) el 13/01/2010 01:01:32
Gente, tengo el siguiente problema.

Tengo un subformulario en formato HOJA DE DATOS, en la cual tengo 4 campos, CANTIDAD, PRODUCTO, PRECIO FINAL.

La idea es ir listando productos con sus respectivos precios. Pero necesito que en otro campo, dentro o fuera del SUBFORMULARIO, me vaya tirando el total. Como en una FACTURA.- se puede hacer? gracias.-
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

RE:Suma de Campo en Subformulario

Publicado por José (53 intervenciones) el 13/01/2010 03:04:47
Hola,

Si he comprendido bien lo que quieres, podrías hacer lo siguiente:
Haces aparecer el pie de tu subformulario
Creas un campo. Por ejemplo en la etiquete pones Total precio y el el textBox le das el nombre txtPrecioFinal (puedes dejar el nombre que tiene por defecto).
Vas a la hoja de propiedades y en datos buscas :origen control y pones

=Suma([PRECIO FINAL])

aquí normalmente es donde va el nombre del campo de la tabla de enlace al formuilario.

Salvas el trabajo y abres tu formulario principal. Te dará la suma de todos los precios presente en esa vista de tu subformulario.

Esto tambien lo puedes hacer en el encabezado del subformulario si existe e igualmente te puede aparecer en el encabezado de tu formulario principal, pero con un poco mas de trabajo.

Un saludo

José
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

RE:Suma de Campo en Subformulario

Publicado por GONZALO (7 intervenciones) el 13/01/2010 12:21:50
Jose, a eso ya lo probé pero no funciona.

Por dos motivos. 1, porque con la vista de HOJA DE DATOS EN EL SUBFORMULARIO NO ME LO SUMA. y 2- porque aunque lo ponga como vista de UN UNICO FORMULARIO, me suma TODOS LOS PRECIOS FINALES QUE HAY EN LA BASE DE LOS PRODUCTOS.-

Alguien tiene idea como hacerlo??
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

RE:Suma de Campo en Subformulario

Publicado por Jefferson (8 intervenciones) el 13/01/2010 13:52:53
Hola GONZALO

Como te comentas Jose es lo correcto, solo que al formulario principal donde estas viendo al subformulario, le creas un campo texto nuevo (Total) y en el origen de registro =[SubformularioTal].Formulario!Total_del_Subform

Ya comentaras

Desde Venezuela
Jefferson
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

RE:Suma de Campo en Subformulario

Publicado por José (53 intervenciones) el 14/01/2010 02:23:40
Hola,

Si no lo consigues por el camino explicado por Jefferson, trata de crear un campo en el encabezado de tu formulario principal y el origen control del campo lo enlazas a una funcion que crearás en un modulo (no de clase; un modulo general), la cual creará un filtro en la tabla del subformulario, con los datos que aparecen en el formulario sumando los datos correspondientes al filtro aplicado (que será el filtro sobre el Id del formulario/subformulario).
algo así como:

Id es el argumento que transmites a la funcion y que no es otro que la clave primaria de tu formulario principal y que es la unión con tu tabla en el subformulario .
El origen control de tu nuevo campo sería =CALCULAPRECIOFINAL([Id])

La función en un modulo general (no de clase) sería la siguiente
Algunas cosas en el filtro pueden ser redundantes pero yo lo prefiero así.

Public function CALCULAPRECIOFINAL(Id)
Dim Db as DataBase,R as RecordSet,Precio as double
Set Db = currentDb
Set R = Db.OpenRecordSet("TABLESUBFORMULARIO")
R.Filter = "Str$([IDFORMULARIOPRINCIPAL]) = " & CHR$(34) & Str$(Id) & cHR$(34)
Set R = R.OpenRecordSet()
Precio = 0.0
If not R.bof then R.moveFirst
Do while not R.eof
Precio = Recio + R![PRECIOFINAL]
If not R.eof then R.MoveNext
Loop
CALCULAPRECIOFINAL = Precio
End function

Por si tuevieses alguna duda en cuanto a su actualización le puedes poner la misma función el el evento dobleclick del campo creado.

Un saludo

José
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

RE:Suma de Campo en Subformulario

Publicado por GONZALO (7 intervenciones) el 14/01/2010 12:44:15
OK, amigos, lo solucioné de otra manera, creo que es un parche solamente lo hice mediante una consulta y luego la mostré en el formulario, ahora bien.

La consulta no se me actualiza hasta que no salgo del registro. Estoy tratando de hacer que se actualice, tienen las reglas para hacerlo por VBASIC?

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

RE:Suma de Campo en Subformulario

Publicado por Jefferson (22 intervenciones) el 14/01/2010 18:43:05
Hola GONZALO

No hay peor manera de aprender... que nadar en contra de la corriente...!!!
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