|
Public Sub LoadGraphDataFromQuery(PEGraph1 As Object, QueryName As String,_
PointLabelField
As Integer)
'
QueryName is the name of the query to base record set
'
PointLabelField is normally (0) and identifies the field to load as PointLabels
'
SubsetLabels will be based off the unique column names created via cross-tab
Dim
i, o, col, RecordCount, ColumnCount As
Long
Dim
TmpYData() As
Single
Dim
db ' As Database
Dim
rs ' As Recordset
Set
db = CurrentDb
Set
rs = db.OpenRecordset(QueryName)
'**
Determine size of data **'
rs.MoveLast
RecordCount
= rs.RecordCount
ColumnCount
= rs.Fields.Count - 1
'**
Set Size of Graph Object to size of Tabled data **'
PEGraph1.Subsets
= ColumnCount
PEGraph1.Points
= RecordCount
'**
Fill TmpYData() with data and pass all at ounce **'
ReDim
TmpYData(ColumnCount * RecordCount) As Single
rs.MoveFirst
For
col = 1 To ColumnCount
i
= 0
Do
Until rs.EOF
o
= ((col - 1) * RecordCount) + i
TmpYData(o)
= rs.Fields(col)
rs.MoveNext
i
= i + 1
Loop
rs.MoveFirst
Next
col
o
= PEvset(PEGraph1.hObject, PEP_faYDATA, TmpYData(0), ColumnCount * RecordCount)
'**
Fill Column Labels as Subset Labels **'
For
col = 1 To ColumnCount
PEGraph1.SubsetLabels(col
- 1) = rs.Fields(col).Name
Next
'**
Fill Point Labels **'
i
= 0
rs.MoveFirst
Do
Until rs.EOF
PEGraph1.PointLabels(i)
= rs.Fields(PointLabelField) ' 0 field point labels
i
= i + 1
rs.MoveNext
Loop
End Sub |