MS Access 2003 - Gráficos Sparkline no Microsoft Access
-
20-09-2019 - |
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!
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:
Aqui está um exemplo das linhas de faíscas mostradas em uma forma contínua:
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.