Access - Suma totales ????

 
Vista:

Suma totales ????

Publicado por carlos (60 intervenciones) el 26/04/2006 15:29:40
muchas gracias al que se haya molestado en intentar ayudarme, en fin aqui va mi pregunta,
pues tengo una tabla (access 2000) donde registro productos, y un campo fecha (dd/mm/aa), entre otros, pues bien le hago una consulta a la tabla y organizo segun el criterio la cantidad de veces que he tenido que realizar pedidos para ese producto, ahora lo que quiero es sacar el porciento(la formula me la conozco), el problema viene, que como el mes a listar se lo doy por un criterio en la consulta, y me salen la suma de todos los dias, debo dividir entre el total de dia del mes dado, y ahi es donde no llego mas, como?? seguro que debe ser por codigo, como puedo sacar segun el mes o de otra forma los dias de cada mes para poder hacer mis calculos, si es de 30,31, 29 o 28, para el caso de febrero, es dificil??? se puede hacer???, si hay que hacerlo por codigo, me gustaria que me dijeran mas o menos, o todo, como se hace y donde debo poner ese codigo, bien espero haberme explicado correctamente, y graciasss.
saludos
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 totales ????

Publicado por Juan Amorós (218 intervenciones) el 26/04/2006 15:52:13
Hola Carlos:

Si he entendido bien necesitas (para el cálculo del porcentaje) sacar en una columna el número de días del mes.

Te propongo una solución:

Créate una nueva columna en la consulta y escribes:

Dias: Siinm(month([tucampofecha])=1;31; Siinm(month([tucampofecha])=2;28;Siinm(month([tucampofecha])=3;31;Siinm(month([tucampofecha])=4;30;Siinm(month([tucampofecha])=5;31;Siinm(month([tucampofecha])=7;30;Siinm(month([tucampofecha])=2;31;Siinm(month([tucampofecha])=8;28;Siinm(month([tucampofecha])=9;30;Siinm(month([tucampofecha])=10;31;Siinm(month([tucampofecha])=11;30;Siinm(month([tucampofecha])=12;31))))))))))))

(El último Siinm(month([tucampofecha])=12;31; lo podrías cambiar, simplemente por 31 (el mes de la fecha será, obviamente, de 1 a 12) y, por tanto quitar el último paréntesis de cierre.

Saludos

Juan Amorós
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 totales ????

Publicado por 2pl (773 intervenciones) el 26/04/2006 15:55:00
A esta función le pasas el año y mes de una fecha.
Supongo que sabras utilizar funciones.

Function DIAFINALMES(ANNO As String, MES As String) As Integer
'Fecha pasada en formato caracter aaaa
If MES = "01" Then
DIAFINALMES = 31
' Comprobar si el año es bisiesto hasta el año 2016 (si quieres lo amplias)
ElseIf MES = "02" Then
If ANNO = "2004" Or ANNO = "2008" Or ANNO = "2012" Or ANNO = "2016" Then
DIAFINALMES = 29
Else
DIAFINALMES = 28
End If
ElseIf MES = "03" Then
DIAFINALMES = 31
ElseIf MES = "04" Then
DIAFINALMES = 30
ElseIf MES = "05" Then
DIAFINALMES = 31
ElseIf MES = "06" Then
DIAFINALMES = 30
ElseIf MES = "07" Then
DIAFINALMES = 31
ElseIf MES = "08" Then
DIAFINALMES = 31
ElseIf MES = "09" Then
DIAFINALMES = 30
ElseIf MES = "10" Then
DIAFINALMES = 31
ElseIf MES = "11" Then
DIAFINALMES = 30
ElseIf MES = "12" Then
DIAFINALMES = 31
End If

End Function
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

que rapido, me ayudaron gracias a los dos.

Publicado por carlos (60 intervenciones) el 26/04/2006 16:01:47
nose mucho de funciones, pero vere que hago, gracias por ayudarme tan rapido
saludos
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 totales ????

Publicado por Chea (1015 intervenciones) el 26/04/2006 16:54:40
La función dateserial nos devuelve una fecha aceptando expresiones para el mes, el día y el año. Si en el parámetro del día le pasamos 0 y en el del mes le añadimos uno, entonces nos devuelve la fecha anterior al día 1 uno del mes siguiente; es decir, el último día del mes indicado.

Teniendo la fecha, con Day(Fecha) obtenemos el número de día.

Entonces, la función queda así de sencilla:

Diasmes= day(dateserial (Año,mes +1 ,0))

Saludos
José Bengoechea Ibaceta
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:Gracias, chea

Publicado por 2PL (773 intervenciones) el 26/04/2006 18:07:07
No te acostaras sin saber una cosa más.
Saludos desde Cádiz
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

gracias chea.

Publicado por carlos (60 intervenciones) el 26/04/2006 18:15:45
este foro si que funciona, y gracias a todos los que dedican su tiempo.
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