L'oggetto utilizzato è il MSChart di Visual Basic aggiunto al progetto dal componente Microsoft Chart Control 6.0
Di seguito l'esempio:
Private Sub CmdLoad_Click()
Dim adodbRec As ADODB.Recordset
Dim adodbConn As ADODB.Connection
Dim sql As String
Dim dbTest As String
Dim intRows
dbTest = "Provider = Microsoft.Jet.OleDB.4.0;Data source =
C:\test\dbtest.mdb;Persist Security Info=False"
Set adodbConn = New ADODB.Connection
adodbConn.Open (pathConnection)
adodbConn.CursorLocation = adUseClient 'tipo di cursore
On Error GoTo 0 'Resume normal error processing
Set adodbRec = New ADODB.Recordset
sql = "select valore, descr_costo from tab_costi"
adodbRec.Open sql, adodbConn, adOpenDynamic, adLockOptimistic
intRows = adodbRec.RecordCount
MSChart1.ColumnCount = intRows
With MSChart1
.chartType = VtChChartType2dPie
For i = 1 To adodbRec.RecordCount
.Row = 1
.Column = i
.Data = adodbRec.Fields.Item(0).Value
adodbRec.MoveNext
Next
With .DataGrid
adodbRec.MoveFirst
.RowLabelCount = 1
.ColumnCount = intRows
.RowCount = 1
For i = 1 To .ColumnCount
If IsNull(adodbRec.Fields.Item(1).Value) Then
.ColumnLabel(i, 1) = "---"
Else
.ColumnLabel(i, 1) = adodbRec.Fields.Item(1).Value
End If
adodbRec.MoveNext
Next i
End With
For i = 1 To .Plot.SeriesCollection.Count
With .Plot.SeriesCollection(i).DataPoints(-1).DataPointLabel
.LocationType = VtChLabelLocationTypeOutside
.Component = VtChLabelComponentPercent
.PercentFormat = "0%"
.VtFont.Size = 10
End With
Next i
End With
adodbRec.Close
End Sub
Queste le figure del grafico a torta e della tabella:

