Question

Hé les gars. Je me demandais si quelqu'un sait d'une méthode pour créer des graphiques sparkline sur un formulaire en MS Access. Le constructeur de tableau ne fonctionne pas vraiment très bien pour créer des graphiques sparkline (graphiques) que les petits.

Juste curieux, merci!

Était-ce utile?

La solution

Je ne pense pas qu'il y ait quoi que ce soit construit pour les graphiques sparkline dans MS Access. Vous devez utiliser un contrôle tiers et le déployer avec votre application à tous les utilisateurs ou utiliser le contrôle intégré MS Excel pour afficher le graphique.

Autres conseils

Il existe une solution sparkline alimenté par VBA présenté sur le blog d'accès assez récemment: http://blogs.office.com/b/microsoft-access/archive/2011/02/10/power- pointe-add-sparkline-comme-à-graphiques-accès reports.aspx

Ils ont un .mdb ainsi qu'un exemple de fichier .accdb disponible, donc je suppose que cela fonctionne sur plusieurs versions.

J'ai commencé avec le sparkline alimenté par VBA mais ne pas aimé qu'il avait l'air basse résolution et je ne pouvais pas l'utiliser sur une forme continue (il ne fonctionne que sur les rapports). La solution que je suis venu avec était de construire les graphiques dans Excel et enregistrez les images de tableau dans un sous-dossier. Ensuite, il est facile de lier l'image sur un rapport ou sous forme continue. Mes tableaux sont mis à jour tous les soirs, bien que la boucle de construction graphique Excel est vraiment rapide. La partie lente génère les données que les cartes ont besoin, ce qui peut varier en fonction de ce que vous tracent.

J'ai créé un modèle dans Excel qui avait un tableau avec le regard et la résolution que je voulais. J'ai écrit une routine VBA dans Access pour ouvrir une feuille Excel et boucle à travers chaque enregistrement que je voulais tracer. La feuille est transmise à cette fonction (ci-dessous), qui charge des enregistrements de données de la carte et il passe dans Excel, qui actualise automatiquement l'objet "SparkChart. Elle enregistre ensuite l'image à un sous-dossier. La feuille Excel reste ouverte et est réutilisée avec chaque boucle. Je ne comprend pas la fonction avec la boucle.

Voici ce que mon tableau ressemble dans Excel:

Voici un exemple des Sparklines représentés sous une forme continue:

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

J'ai pensé à la création d'une vidéo expliquant comment YouTube j'ai construit ce tableau de bord la qualité des données pour tracer les tendances des données. Faites-moi savoir si vous êtes intéressé et je peut être encouragé à le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top