Источник данных для диаграммы Graph

fdds
Дата: 05.03.2008 17:28:38
Можно ли програмно заполнить таблицу данных диаграммы МS Graph по аналогии с листом Excel.
И как вообще диаграмме можно передавать данные, кроме как в виде текста запроса в свойсво RowSource. Ест какие нибуть способы?
Ооооочень надо. Помогите!!!
sdfgsdfgsdf
Дата: 06.03.2008 16:04:29
Зделай себе таблицу с необходимыми полями
Заниси туда необходимые данные (с помощью модуля расчётов там или запросами)
Диаграмму строй на основании этой таблици "SELECT * FROM НоваяТабл"
fdds
Дата: 08.03.2008 12:10:53
Дело в том, что у меня прграмно изменяется источник данных. В разных случаях будет разное количество полей и они бывают разного типа (integer или Single). Чтобы реализовать подобную систему, нужно при запуске диаграммы создавать таблицу соответствующей структуры, и после закрытия удалять ее. Неужели не предусмотрено программное заполнение диаграммы.
Еще мне посоветовали применить диаграмму Excel вместо Graph, где источником данных является как раз лист Excel. Буду сидеть разбираться.
_restavraciya
Дата: 08.03.2008 15:12:06
Использую темп-таблицу только потому что запрос сложный и таблица наполняется в два прохода
При этом могу "слегка" менять Me.Diargram.RowSource (выбор отображаемых полей таблицы)
То есть не вижу проблемы в смене "источника данных"

Если хотите писать непосредственно в таблицу данных диаграммы, то в хелпе VBAGR10.CHM DataSheet Object
Кажется это оно
AND111
Дата: 08.03.2008 21:51:32
пример управления:

Public Sub SetMsGraph2(MSGraph As Object, rs As Recordset, Optional rows As Variant)
'Рартиет - написала Нина Козловская
Dim MSGDatasheet As Object
Dim r%, i%
Set MSGDatasheet = MSGraph.Application.datasheet
MSGDatasheet.Cells.Clear
'-------------------------------------------------------------------------------
rs.MoveLast
r = rs.RecordCount
rs.MoveFirst
If Not IsMissing(rows) And rows < r Then
r = rows
End If
With rs
For i = 2 To r + 1 'первая строка - названия колонок, поэтому вторая
MSGDatasheet.Cells(i, 1) = !name
MSGDatasheet.Cells(i, 2) = !Vol
MSGDatasheet.Cells(i, 3) = !VAL
MSGraph.SeriesCollection(1).points(i - 1).Interior.Color = RGB(!PR, !PG, !PB)
MSGraph.SeriesCollection(2).points(i - 1).Interior.Color = RGB(!PR, !PG, !PB)
.MoveNext

Next i
End With

End Sub

есть сложнее - с установкой типа диаграммы