MS Access 2003 - Los gráficos Sparkline en Microsoft Access
-
20-09-2019 - |
Pregunta
Hola chicos. Sólo me preguntaba si alguien sabe de un método para crear gráficos sparklines en un formulario de Microsoft Access. El generador de gráficos en realidad no funciona muy bien para crear gráficos sparklines (gráficos que los pequeños).
Sólo por curiosidad, gracias!
Solución
No creo que haya nada incorporado para gráficos Sparkline en MS Access. Usted tiene que utilizar un control de terceros y desplegar junto con su aplicación para todos los usuarios o el uso de MS Excel control embebido para mostrar la gráfica.
Otros consejos
Hay una solución minigráfico con motor VBA aparecido en el blog de acceso relativamente poco tiempo: http://blogs.office.com/b/microsoft-access/archive/2011/02/10/power- tip-add-sparklines-como-gráficos-a-acceso-reports.aspx
Tienen una .mdb, así como un archivo de ejemplo Accdb disponibles, así que supongo que funciona en múltiples versiones.
He creado una plantilla de Excel que tenía una tabla con el aspecto y la resolución que quería. Escribí una rutina de VBA en Access para abrir una hoja de Excel y bucle a través de cada registro que quería trazar. La hoja se hace pasar a esta función (abajo), que carga un registro de datos de la carta y la pasa en Excel, que actualiza automáticamente el objeto 'SparkChart'. A continuación, guarda la imagen a una subcarpeta. La hoja de Excel permanece abierto y se vuelve a utilizar con cada bucle. No he incluido la función con el bucle.
Esto es lo que mi carta se parece en Excel:
Aquí es un ejemplo de los Sparklines que se muestran en una forma continua:
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
He estado pensando en la creación de un vídeo de YouTube que explica cómo construí este Quality Data Dashboard para trazar las tendencias de datos. Déjeme saber si usted está interesado y que sea alentado a hacerlo.