[RESUELTO] Gráficos que tarda mucho en cargar

Dudas sobre código
Avatar de Usuario
zelarra821
Nivel 3
Mensajes: 66
Registrado: Mar Jun 07, 2016 7:35 pm

[RESUELTO] Gráficos que tarda mucho en cargar

Mensajepor zelarra821 » Vie Oct 30, 2020 9:53 pm

Buenas noches.

Tengo dos gráficos en un formulario que tardan bastante en cargar, y solo tengo 268 registros.

Este es el código que utilizo para mostrar los dos gráficos:

Código: Seleccionar todo

Private Sub Promedio_AfterUpdate()
    Select Case Me.Promedio
        Case -1
            Me.Uno = 0
            Me.ChkPorMeses = -1
            Me.ChkPorAños = 0
            Call MostrarPorMesesAños(Me)
            Me.EtiAño.Visible = False
            Me.Año1.Visible = False
            Me.GraficaAbsolutos.RowSource = "SELECT CPromedioDeVecesPorMesesDoloresDeCabeza.Mes, CPromedioDeVecesPorMesesDoloresDeCabeza.Promedio" _
                                            & " FROM CPromedioDeVecesPorMesesDoloresDeCabeza" _
                                            & " GROUP BY CPromedioDeVecesPorMesesDoloresDeCabeza.Mes, CPromedioDeVecesPorMesesDoloresDeCabeza.Promedio, CPromedioDeVecesPorMesesDoloresDeCabeza.Mes1" _
                                            & " ORDER BY CPromedioDeVecesPorMesesDoloresDeCabeza.Mes1"
            Me.GraficaPorcentaje.RowSource = "SELECT CPromedioDelPorcentajePorMesesDoloresDeCabeza.Mes, CPromedioDelPorcentajePorMesesDoloresDeCabeza.Promedio" _
                                            & " FROM CPromedioDelPorcentajePorMesesDoloresDeCabeza" _
                                            & " GROUP BY CPromedioDelPorcentajePorMesesDoloresDeCabeza.Mes, CPromedioDelPorcentajePorMesesDoloresDeCabeza.Promedio, CPromedioDelPorcentajePorMesesDoloresDeCabeza.Mes1" _
                                            & " ORDER BY CPromedioDelPorcentajePorMesesDoloresDeCabeza.Mes1"
        Case 0
            Me.Uno = -1
            Call OcultarPorMesesAños(Me)
            Me.Año1.Visible = True
            Me.Promedio = 0
        End Select
End Sub


Y estas son las consultas:

Código: Seleccionar todo

SELECT MesEnTexto([Fecha]) AS Mes, [Veces]/([AñosTranscurridos]*[DiasMes]) AS Promedio, Count(VecesDoloresDeCabeza([Fecha])) AS Veces, AñosTranscurridos([Fecha]) AS AñosTranscurridos, DiasdelMes([Fecha]) AS DiasMes, Month([Fecha]) AS Mes1
FROM TDoloresDeCabeza
GROUP BY MesEnTexto([Fecha]), AñosTranscurridos([Fecha]), DiasdelMes([Fecha]), Month([Fecha])
ORDER BY Month([Fecha]);


Código: Seleccionar todo

SELECT MesEnTexto([Fecha]) AS Mes, [Veces]/[AñosTranscurridos] AS Promedio, Count(VecesDoloresDeCabeza([Fecha])) AS Veces, AñosTranscurridos([Fecha]) AS AñosTranscurridos, Month([Fecha]) AS Mes1
FROM TDoloresDeCabeza
GROUP BY MesEnTexto([Fecha]), AñosTranscurridos([Fecha]), Month([Fecha])
ORDER BY Month([Fecha]);


Intenté arreglarlo con esta función

Código: Seleccionar todo

Public Function PromedioDeVecesPorMesesDoloresDeCabeza(Mes As String) As Long 'Esta casilla es la cuota de IVA del trimestre
Dim rst As DAO.Recordset
Dim strSQL As String
    'Método 1 A través de una consulta, sumo los ingresos del trimestre del año solicitado, y se los restos a los gastos del trimestre del año solicitado
    strSQL = "SELECT [Veces]/[AñosTranscurridos] AS Promedio, Count(VecesDoloresDeCabeza([Fecha])) AS Veces, AñosTranscurridos([Fecha]) AS AñosTranscurridos, Month([Fecha]) AS Mes1" _
            & " FROM TDoloresDeCabeza" _
            & " WHERE MesEnTexto([Fecha]) ='" & Mes & "'" _
            & " GROUP BY AñosTranscurridos([Fecha]), Month([Fecha])"
    Set rst = CurrentDb.OpenRecordset(strSQL)
    If Not (rst.EOF And rst.BOF) Then
         rst.MoveLast
         PromedioDeVecesPorMesesDoloresDeCabeza = rst("Promedio")
    End If
    rst.Close
    Set rst = Nothing
End Function


Pero no me dio resultado.

¿Alguien sabe cómo puedo mejorar la carga de los informes?

Gracias.

Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado