Pergunta

Ei pessoal. Apenas me perguntando se alguém sabe de um método para criar gráficos Sparkline em um formulário no MS Access. O construtor de gráficos realmente não funciona muito bem para criar gráficos Sparkline (gráficos que pequenos).

Apenas curioso, obrigado!

Foi útil?

Solução

Eu não acho que há nada incorporado para gráficos Sparkline no MS Access. Você deve usar um controle de terceiros e implantá -lo junto com seu aplicativo para todos os usuários ou usar o MS Excel Incorpord Control para mostrar o gráfico.

Outras dicas

Há uma solução Sparkline movida a VBA apresentada no blog de acesso bastante recentemente: http://blogs.office.com/b/microsoft-access/archive/2011/02/10/power-tip-add-sparkline-like-graphs-to-access-reports.aspx

Eles têm um .mdb e um arquivo de amostra .accdb disponível, então acho que ele funciona em várias versões.

Comecei com o Sparkline movido a VBA Mas não gostou, parecia baixa resolução e eu não conseguia usá-lo de forma contínua (ele só funciona em relatórios). A solução que encontrei foi construir os gráficos no Excel e salvar as imagens do gráfico em uma subpasta. Então é fácil vincular a imagem em um relatório ou formulário contínuo. Meus gráficos atualizam todas as noites, embora o loop de construção de gráficos do Excel seja muito rápido. A parte lenta está gerando os dados que os gráficos precisam, o que pode variar dependendo do que você está gráfico.

Criei um modelo no Excel que tinha um gráfico com a aparência e a resolução que eu queria. Eu escrevi uma rotina VBA no acesso para abrir uma planilha do Excel e fazer um loop através de cada registro que eu queria fazer o gráfico. A folha é passada para esta função (abaixo), que carrega um registro de dados do gráfico e passa para o Excel, que atualiza automaticamente o objeto 'SparkChart'. Em seguida, salva a imagem em uma subpasta. A folha do Excel permanece aberta e é reutilizada com cada loop. Não incluí a função com o loop.

Aqui está a aparência do meu gráfico no Excel:

Excel file with chart

Aqui está um exemplo das linhas de faíscas mostradas em uma forma contínua:

Data Quality Dashboard example

Public Function fCreateSparklineChart(pDQ_ID As Long, pChartSheet As Object) As Boolean
' Pass in a Dashboard Query ID for data that has already compiled into the top-n
' temp table and the data will be copied to the passed pChartSheet in Excel.  This
' will update a chart object, then the chart is saved as a .png file.

    Dim strSQL As String
    Dim strChartPath As String
    Dim rs As DAO.Recordset

    On Error GoTo ErrorHandler

    ' Get chart data from a table that has already been compiled with 
    ' min and max values as percentages so the lowest value is 0
    ' and the highest value is 100.
    strSQL = "  SELECT DQ_ID, Trend_Value, " & _
            " IIf(Trend_Value=0,0,Null) AS Min_Point, " & _
            " IIf(Trend_Value=100,100,Null) AS Max_Point " & _
            " FROM " & DASHBOARD_TMP_TABLE & _
            " WHERE (DQ_ID=" & pDQ_ID & ") "
    strSQL = strSQL & " ORDER BY RowNo "

    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

    If rs.RecordCount > 0 Then

        pChartSheet.Range("A1").CurrentRegion.Clear
        pChartSheet.Range("A1").CopyFromRecordset rs
        pChartSheet.ChartObjects("SparkChart").Chart.SetSourceData pChartSheet.Range("rngData")

        ' Use a filename that includes the record ID.
        strChartPath = CurrentProject.Path & "\Images\Sparkline_DQ_ID_" & Format(pDQ_ID, "0000") & ".png"

        ' Delete the file if it already exists.
        DeleteFile strChartPath

        ' Save the Excel chart as a png file.
        pChartSheet.ChartObjects("SparkChart").Chart.Export strChartPath, "png"

        fCreateSparklineChart = True
    End If

Exit_Function:
    Exit Function

ErrorHandler:
    fCreateSparklineChart = False

    MsgBox "Error #" & err.Number & " - " & err.Description & vbCrLf & "in procedure fCreateSparklineChart of basSparkline"
    GoTo Exit_Function

End Function

Eu tenho pensado em criar um vídeo do YouTube explicando como criei esse painel de qualidade de dados para traçar as tendências de dados. Deixe -me saber se você estiver interessado e posso ser incentivado a fazê -lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top