문제

얘들 아. MS Access의 양식에 Sparkline 그래프를 작성하는 방법을 알고 있는지 궁금합니다. 차트 빌더는 실제로 스파크 라인 차트 (작은 그래프)를 만드는 데 효과적이지 않습니다.

그냥 호기심, 감사합니다!

도움이 되었습니까?

해결책

MS 액세스에 스파크 라인 그래프를위한 내장이 있다고 생각하지 않습니다. 타사 컨트롤을 사용하여 모든 사용자에게 앱과 함께 배포하거나 MS Excel Embedded Control을 사용하여 그래프를 표시해야합니다.

다른 팁

Access Blog에 공정하게 제공되는 VBA 구동 Sparkline 솔루션이 있습니다. http://blogs.office.com/b/microsoft-access/archive/2011/02/10/power-tip-add-sparkline-like-craphs-ccess-reports.aspx

.mdb와 .accdb 샘플 파일을 사용할 수 있으므로 여러 버전에서 작동한다고 생각합니다.

나는 시작했다 VBA 구동 스파크 라인 그러나 저해상도로 보이는 것을 좋아하지 않았고 연속적인 형태로 사용할 수 없었습니다 (보고서에서만 작동합니다). 내가 생각해 낸 해결책은 차트를 Excel로 구축하고 하위 폴더에 차트 이미지를 저장하는 것이 었습니다. 그런 다음 이미지를 보고서 또는 연속 형식으로 쉽게 연결할 수 있습니다. Excel 차트 빌딩 루프는 정말 빠르지 만 내 차트는 밤마다 업데이트됩니다. 느린 부분은 차트에 필요한 데이터를 생성하는 것입니다. 이는 차트에 따라 다를 수 있습니다.

Excel에서 템플릿을 만들었습니다. 나는 Access Access에서 Excel 시트를 열기 위해 VBA 루틴을 작성하여 차트를 만들고자하는 각 레코드를 통해 루프를 썼습니다. 시트는이 기능 (아래)으로 전달되어 차트 데이터의 레코드를로드하고 Excel로 전달하여 'SparkChart'객체를 자동으로 새로 고침합니다. 그런 다음 이미지를 하위 폴더에 저장합니다. Excel 시트는 열려 있으며 각 루프와 함께 재사용됩니다. 루프에 함수를 포함하지 않았습니다.

내 차트는 Excel에서 보이는 것입니다.

Excel file with chart

다음은 연속적인 형태로 표시된 스파크 라인의 예입니다.

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

나는 데이터 품질 대시 보드를 어떻게 구축하여 데이터 트렌드를 차트에 구축하는 방법을 설명하는 YouTube 비디오를 만들려는 생각을하고 있습니다. 관심이 있으시면 알려 주시면 장려 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top