MS Access 2003 - Спарклайн-графики в Microsoft Access - PullRequest
1 голос
/ 07 октября 2009

Привет, ребята. Просто интересно, если кто-нибудь знает способ создания спарклайн-графиков на форме в MS Access. Построитель диаграмм не очень хорошо работает для создания спарклайновых диаграмм (маленьких графиков).

Просто любопытно, спасибо!

Ответы [ 3 ]

1 голос
/ 19 марта 2013

В блоге Access относительно недавно появилось решение спарклайна на базе VBA: http://blogs.office.com/b/microsoft-access/archive/2011/02/10/power-tip-add-sparkline-like-graphs-to-access-reports.aspx

У них есть .mdb, а также пример файла .accdb, так что я предполагаю, что он работает в нескольких версиях.

1 голос
/ 07 октября 2009

Не думаю, что в MS Access есть что-то встроенное для графиков Sparkline. Вы должны использовать сторонний элемент управления и развернуть его вместе со своим приложением для всех пользователей или использовать встроенный элемент управления MS Excel для отображения графика.

0 голосов
/ 29 июня 2018

Я начал с VBA на базе спарклайна , но мне не понравилось, что он выглядел в низком разрешении, и я не мог использовать его в непрерывной форме (он работает только в отчетах). Решение, которое я придумал, состояло в том, чтобы построить диаграммы в Excel и сохранить изображения диаграмм во вложенной папке. Тогда легко связать изображение в отчете или в непрерывной форме. Мои диаграммы обновляются каждую ночь, хотя цикл построения диаграмм в Excel действительно быстрый. Медленная часть генерирует данные, которые нужны диаграммам, которые могут варьироваться в зависимости от того, что вы составляете.

Я создал шаблон в Excel, в котором была диаграмма с нужным мне видом и разрешением. Я написал подпрограмму VBA в Access, чтобы открыть лист Excel и просмотреть каждую запись, которую я хотел построить. Лист передается в эту функцию (ниже), которая загружает записи данных диаграммы и передает их в 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, объясняющего, как я создал эту панель управления качеством данных для составления графика трендов данных. Дайте мне знать, если вы заинтересованы, и меня могут попросить сделать это.

...