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

Suma acumulada

209 views
Skip to first unread message

iker

unread,
Jun 23, 2005, 11:02:01 PM6/23/05
to
Hola,

No sé si exista una función o cómo le puedo hacer. Hice una consulta:

Campo Total del campo %Relativo %Relativo acumulado

Campo y total del campo son valores que saque de la base de datos, pero %
relativo es una función donde dividí la suma del campo entre la suma del
total de todos los campos. Donde tengo problemas es con %Relativo acumulado
donde va sumando el %relativo de todos los campos. Por ejemplo:

%Relativo %Relativo acumulado
1 15 15
2 12 27
3 10 37

Como lo mencioné %Relativo lo calculé %Relativo=[SumaDeTotal1/SumaDeTotal]

donde SumaDeTotal1=total de cada campo y
SumaDeTotal=suma total de todos los campos.

El %relativo acumulado traté de calcularlo por medio de referencias cruzadas
pero estoy utilizando variables y no me permite realizarlas.

Esta tabla la quiero para hacer gráficos de pareto.

Agradecería su ayuda

Ju@nK

unread,
Jun 24, 2005, 5:25:57 AM6/24/05
to
Puedes llenar una tabla temporal en tiempo de ejecución con los datos
acumulados, yo utilicé este método para hacer unos gráficos tipo
kaplan-meier que de otra forma serían imposibles, en una respuesta mía de
ayer tienes este código para un caso parecido

Public Sub LlenaRubros()
'Procedimiento para llenar tabla temporal de informe
'Ju@nK 2005
'Ya te daré el nº de cuenta :-)
Dim midb As DAO.Database
Dim rsOr As DAO.Recordset
Dim rsDe As DAO.Recordset
Dim misql As String
Dim ru As Long
Dim A As Double
Dim che As String

Set midb = CurrentDb

'Vaciamos datos
misql = "DELETE * FROM ChequesVacio"
midb.Execute misql

'Tabla origen
misql = "SELECT rubro, Cantidad, Cheque FROM Cheques ORDER BY rubro"
Set rsOr = midb.OpenRecordset(misql)

'Tabla Destino
misql = "SELECT rubro, Total, SegunCheques FROM ChequesVacio "
Set rsDe = midb.OpenRecordset(misql)

'Empezamos el recorrido
rsOr.MoveLast
rsOr.MoveFirst
ru = rsOr!Rubro

While Not rsOr.EOF
If ru = rsOr!Rubro Then

'Es de la misma línea, acumulamos datos
che = che & "," & rsOr!Cheque
A = A + rsOr!Cantidad
rsOr.MoveNext

Else

'Llenamos la línea y limpiamos
rsDe.AddNew
rsDe!Rubro = ru
rsDe!SegunCheques = Mid(che, 2, Len(che) - 1)
'rsDe!nombreRubro = rsOr!nombreRubro
rsDe!Total = A
rsDe.Update

'empezamos linea nueva si no es la última
If Not rsOr.EOF Then
ru = rsOr!Rubro
A = 0
che = ""
End If
End If
Wend
'Llenamos la ultima línea y cerramos
rsDe.AddNew
rsDe!Rubro = ru
rsDe!SegunCheques = Mid(che, 2, Len(che) - 1)
rsDe!Total = A
rsDe.Update

'Cerramos y limpiamos memoria
rsOr.Close
rsDe.Close
'misb.Close
midb.Close
Set rsOr = Nothing
Set rsDe = Nothing
End Sub

--
****************************************
Colabora con el grupo, contesta a este mensaje
y dinos si te sirvió o no la respuesta dada.
Muchas gracias.
****************************************
Salu2
Ju@nK [DCE ***] + VSTO
www.juank.tk
www.mvp-access.com
****************************************
"iker" <ik...@discussions.microsoft.com> escribió en el mensaje
news:28E59880-7E39-4598...@microsoft.com...

Eva Etxebeste

unread,
Jun 24, 2005, 5:32:07 AM6/24/05
to
Hola Iker

Supongo que esto va en un informe, podrías solucionarlo de la forma
siguiente:

% Relativo
Origen = campo/total
Suma continua = no

% Relativo Acumulado
Origen = campo/total
Suma continua = Sobre grupo (o sobre todo si no tienes agrupaciones)

Un saludo

Eva Etxebeste

"iker" <ik...@discussions.microsoft.com> escribió en el mensaje
news:28E59880-7E39-4598...@microsoft.com...

Iggv

unread,
Jun 24, 2005, 1:12:41 PM6/24/05
to
Iker: Yo justamente estoy tratando de obtener %relativo.
Entiendo que en tu consulta listas todos los campos con su correspondiente
total .Entiendo de donde sacas SumaDeTotal1, es una expresion sobre ese
total. Lo que no entiendo es de donde sacas SumaDeTotal que vos definis como
la suma total de todos los campos. La sacas de otra consulta?
Gracias
que no entiendo es como conseguis SumaDeTotal=suma total de todos los campos

"iker" <ik...@discussions.microsoft.com> escribió en el mensaje
news:28E59880-7E39-4598...@microsoft.com...

Ju@nK

unread,
Jun 24, 2005, 5:20:11 PM6/24/05
to
Otra opción es utilizar una función agrupada de dominio como
dsum("campo","tabla","condiciones")

--
****************************************
Colabora con el grupo, contesta a este mensaje
y dinos si te sirvió o no la respuesta dada.
Muchas gracias.
****************************************
Salu2
Ju@nK [DCE ***] + VSTO
www.juank.tk
www.mvp-access.com
****************************************

"Ju@nK" <con...@hotmail.com> escribió en el mensaje
news:eXhR%236JeF...@TK2MSFTNGP15.phx.gbl...

iker

unread,
Jun 24, 2005, 10:25:01 PM6/24/05
to
Hola,

Sí, lo hice por medio de consultas donde seleccioné los campos año y total,
y agrupé por medio de suma el total.

Saludos.

"Iggv" escribió:

iker

unread,
Jun 29, 2005, 5:47:02 PM6/29/05
to
Hola, gracias por responderme pero yo soy principiante y no sé donde tengo
que colocar este código, en un objeto, módulo o macro.

Además no entiendo a qué te refieres con los campos que tienes como rubro,
cantidad y cheque y cómo compararlos con mis campos.

Intentado hacerlo decía que no encontraba la consulta siendo que sí existía
y sí estaba bien escrita.

Me marcaba error en "Set rsOr = midb.OpenRecorset(misql)" diciendo que no
especificaba los parámetros.

Yo tengo una consulta generada por una tabla donde sólo arrastre los campos
de módulo y total, donde agrupándolo por suma el total me calcula el total de
cada módulo creando otra columna. También arrastré otro campo suma de total
(este lo calcule con otra consulta para que me sume el total de todo el año).

En la consulta realicé otra fórmula %Relativo para que me dividiera la
sumadetotal, que es la suma de cada módulo entre la suma de total que
arrastré de la otra consulta, con esto quiero que vaya sumando cada %relativo
de cada módulo, lo que no he podido hacer.

Eva dijo que un reporte pero también no sé como generar que esté reporte me
genere el mismo un gráfico, porque necesito que al lado de la tabla me
muestre el gráfico con dos series, el tiempo total de cada módulo y el
porcentaje relativo acumulado.

Agradecería su ayuda

"Ju@nK" escribió:

Ju@nK

unread,
Jun 30, 2005, 8:07:51 AM6/30/05
to
En realidad, volviendo a leer tu post con dsum("Campo";"Tabla";"Criterios")
lo solucionas a nivel de consulta/formulario, en un informe, utilizando suma
continua en el control ya está


%Relativo %Relativo acumulado
1 15 15
2 12 27
3 10 37

--

****************************************
Colabora con el grupo, contesta a este mensaje
y dinos si te sirvió o no la respuesta dada.
Muchas gracias.
****************************************
Salu2
Ju@nK [DCE ***] + VSTO
www.juank.tk
www.mvp-access.com
****************************************
"iker" <ik...@discussions.microsoft.com> escribió en el mensaje

news:CC026B92-27FF-47E5...@microsoft.com...

iker

unread,
Jul 1, 2005, 1:46:01 AM7/1/05
to
Hola,

Gracias por contestarme pero mi problema que con esa columna tengo que
graficarla y según entiendo esto lo genero en una tabla en un informe y
desconozco que se pueda realizar una gráfica desde esta tabla del informe. O
si te refieres con subformularios desde consultas, pero tampoco he podido
vincular una tabla y un gráfico. En la base de datos Neptuno tiene un informe
de una tabla y un gráfico pero al seleccionar los vinculos secundarios y
primarios dice que desconocera al gráfico con enlace.

Saludos.

"Ju@nK" escribió:

Ju@nK

unread,
Jul 1, 2005, 3:57:48 AM7/1/05
to
Me parece que estás un poco liado. Los datos se almacenan en tablas, a
ellos puedes acceder en modo de edición desde formularios que trabajan
directamente sobre esas tablas o consultas de las mismas (tambien puedes
utilizar la tabla, pero no resulta tan personalizable y gráfico), tanto en
formularios como en informes puedes obtener información de tablas y/o
consultas generando gráficos y/o tablas de valores según sean para
presentación en pantalla (formulario) o posterior impresión en papel
(informes).

Tu tienes una serie de datos en una/s tabla/s

Sobre esa/s tabla/s haces una consulta para agruparlos por una serie de
campos que te den unos valores agrupados

De esta consulta puedes generar un informe con las tablas de resultados y/o
gráficos que quieras.

Ahora empezamos de nuevo, ¿que tabla/s tienes?, ¿que campos tienen esas
tablas?, ¿que es lo que quieres conseguir? y ¿hasta donde has llegado?

--
****************************************
Colabora con el grupo, contesta a este mensaje
y dinos si te sirvió o no la respuesta dada.
Muchas gracias.
****************************************
Salu2
Ju@nK [DCE ***] + VSTO
www.juank.tk
www.mvp-access.com
****************************************
"iker" <ik...@discussions.microsoft.com> escribió en el mensaje

news:BF8B6271-2F36-470C...@microsoft.com...

iker

unread,
Jul 1, 2005, 11:00:03 AM7/1/05
to
Hola,

Mis campos son "módulo" que es un componente y "total" que es el tiempo
muerto que genera ese componente.

Yo hice dos consultas en una la utilicé para sumar todo el tiempo muerto que
se generó en un año, porque esta la necesito para calcular el porcentaje
relativo, que en la fórmulara es el denominador de todos los registros.

En la otra consulta tomé módulo y tiempo y este último lo agrupé en modo de
suma para que me sume el tiempo total de cada uno de los módulos. Luego
arrastré la consulta que me suma todo el tiempo total de todo el año. Y con
esta calculé el porcentaje relativo que se saca dividiendo el tiempo de cada
módulo entre el tiempo de todo el año, y es hasta ahí donde me quedé.

Haciéndose cuatro columnas: módulo, Suma de total (que ésta me la define
access al haber agupado por suma), Total anual (que es el tiempo total de
todo el año, en sí en la tabla es como una constante en todos los módulos), y
%Relativo (dividiendo cada suma de tota entre el total anual) con %Relativo
necesito calcular otra columna que el %Relativo acumulado, que este creo si
me han entendido que es lo que se tiene que sumar.

Según había entendido lo que me dicen tengo que hacer la tabla en un
informe, utilizar dsuma y en propiedades utilizar suma acumulada. pero esta
tabla necesito graficar tanto Suma de total y %Relativo acumulado y desconozo
cómo hacerlo.

Lo único que se me ocurría era que su origen fuera una consulta. Ya que en
la primera respuesta que me dieron había un código que podía utilizar, pero
no entiendo dónde lo debo poner y no supe comparar mis campos contra los que
decían, suponía que rubro=módulo, total=suma de total, pero no sé que se
referían con cheques, si era una numeración, en sí no sé. Llevó dos semanas
utilizando access y no sé sobre visual basic.

Tanto la tabla como el gráfico deben estar en la misma hoja.

Saludos, y gracias por responderme.


"Ju@nK" escribió:

Ju@nK

unread,
Jul 16, 2005, 6:40:59 AM7/16/05
to
Me parece muy bien que seas ambicioso, pero con 2 semanas de access no
puedes tener conocimientos para hacer lo que quieres, es como si un
estudiante de ingeniería de primer curso en el primer trimestres pretendiese
desarroyar el motor de un F1, empieza por cosas mas sencillas para ir
asimilando conceptos.

--
****************************************
Colabora con el grupo, contesta a este mensaje
y dinos si te sirvió o no la respuesta dada.
Muchas gracias.
****************************************
Salu2
Ju@nK [DCE ***] + VSTO
www.juank.tk
www.mvp-access.com
****************************************
"iker" <ik...@discussions.microsoft.com> escribió en el mensaje

news:77233C1D-334B-4F7C...@microsoft.com...

0 new messages