ADO mit MSChart

26/07/2008 - 12:36 von Günter Giel | Report spam
Hallo NG,

Ich habe ein kleines Problem mit dem MSchart-Steuerelement und
ADO-Recordset.

Folgendes:

Ich habe eine Access--Datenbank,in dieser gibt's eine Tabelle namens
"Jahresumsàtze".

In dieser Tabelle gibt es nur 2 Datensàtze, "2006" und "2007", mit den
entsprechenden Umsàtzen.

In vb6 möchte ich diese Umsàtze mit dem MSchart-Steuerelemnt darstellen.

Mit folgendem Code, geht das auch: "Set MSChart.Datasource=RS"

Nur zeigt mein MSChart dann einen Datensatz zu wenig an,in meinem Beispiel
wird nur das Jahr "2007" angezeigt.


Weiß Jemand wieso das so ist?

Auch mit anderen Tabellen hab ich's dann ausprobiert, das Erbenis ist das
gleiche, es fehlt immer der erste Datensatz.

Mit foldendem Code:"Msgbox MSchart.Rowcount"und "Msgbox RS.Recordcount",habe
ich dann festgestellt, das MSChart.Rowcount immer um eins weniger ist als
RS.Recordcount.

Das gibt es doch nicht, oder?


Weiß jemand wie ich mit MSChart alle Datensàtze anzeigen kann?

Vielen Dank im voraus!!!
 

Lesen sie die antworten

#1 Peter Götz
26/07/2008 - 15:20 | Warnen spam
Hallo Günter,

Ich habe ein kleines Problem mit dem
MSchart-Steuerelement und ADO-Recordset.

Folgendes:

Ich habe eine Access--Datenbank,in dieser
gibt's eine Tabelle namens > "Jahresumsàtze".

In dieser Tabelle gibt es nur 2 Datensàtze,
"2006" und "2007", mit den entsprechenden
Umsàtzen.

In vb6 möchte ich diese Umsàtze mit dem
MSchart-Steuerelemnt darstellen.

Mit folgendem Code, geht das auch:
"Set MSChart.Datasource=RS"



Hmm..., ?!?
Ist das der ganze Code?

Nur zeigt mein MSChart dann einen Datensatz
zu wenig an,in meinem Beispiel wird nur das


Jahr "2007" angezeigt.


Weiß Jemand wieso das so ist?



Ohne Deinen vollst. Code zu kennen, mit dem
Du Dein ChartControl konfigurierts und mit dem
Du die anzuzeigenden Daten zuweist, kann man
das nicht wissen.
Auch wàre gut zu wissen, wie der Datensatz-
aufbau (Felder, FeldTypen, Ordinalposition der
Felder) aussieht.

Hier mal ein kleines Beispiel.

1 Form: "Form1"
mit
1 MSChartControls: "MSChart1"
1 Microsoft DataGrid Control (OLEDB): "DataGrid1"

' \\\ Code in Form1
Option Explicit
Private mRS As ADODB.Recordset

Private Sub Form_Load()
Dim i As Integer
Me.ScaleMode = vbPixels
Randomize
CreateData

With MSChart1
Set .DataSource = mRS
.ColumnCount = 1
.chartType = VtChChartType2dBar
mRS.MoveFirst
mRS.MovePrevious
For i = 0 To mRS.RecordCount - 1
.Row = i + 1
mRS.MoveNext
.RowLabel = mRS.Fields(1).Value
Next i

.Legend.Location.LocationType = _
VtChLocationTypeTopLeft

.ShowLegend = True
End With

Set DataGrid1.DataSource = mRS
End Sub

Private Sub CreateData()
Dim i As Integer
Set mRS = New ADODB.Recordset
With mRS
.Fields.Append "Umsatz", adCurrency
.Fields.Append "Jahr", adInteger

.CursorLocation = adUseClient
.LockType = adLockBatchOptimistic
.CursorType = adOpenStatic

.Open

For i = 2000 To 2008
.AddNew
.Fields(1) = i
.Fields(0) = GetRndValue
.Update
Next i
End With
End Sub

Private Function GetRndValue() As Currency
Const Min As Currency = 1000
Const max As Currency = 9999
Dim Betrag As Currency
GetRndValue = Fix((max - Min + 1) * Rnd + Min)
End Function

Private Sub Form_Resize()
MSChart1.Move _
10, 10, _
Me.ScaleWidth - 20, _
Me.ScaleHeight * 0.65 - 15

DataGrid1.Move _
10, _
Me.ScaleHeight * 0.65 + 5, _
Me.ScaleWidth - 20, _
Me.ScaleHeight * 0.35 - 15
End Sub
' \\\ E N T E

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen