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:

