Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top