Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Transfer Data from MSFlexGrid to Graph Chart

0.00/5 (No votes)
30 May 2008 1  
View one row numeric data of MSFlexGrid as Graph Chart
FlexToGraph

Introduction

I wrote an article earlier about ActiveX control (FDGrid) to allow FlexGrid control as a DataGrid control. To see this ActiveX and its application, click here.

Now I create a new AciveX control (MKGraph) to transfer data from FlexGrid to a graph chart:

  • Connect with database
  • Fill FlexGrid with table
  • Add or Edit records
  • Choose numeric columns
  • Choose graph type
  • Edit title and legend
  • Click to graph
  • Save graph chart
  • Copy graph chart

Background

When using my ActiveX control (MKGraph), you must load the grid with data from the database file, see the code in the form (frmMain). Some properties and methods of my ActiveX are in the following table:

Method/Property Definition Example
DatabaseName Set database name MKGraph1.DatabaseName = FileName
DataSource Set the Recordset to grid MKGraph1.DataSource = rs
AddNewRow Add new record to grid MKGraph1.AddNewRow
DeleteRow Delete record MKGraph1.DeleteRow
Update Save record after add MKGraph1.Update
CancelUpdate Cancel update MKGraph1.CancelUpdate
MoveFirst Move to first record MKGraph1.MoveFirst
MoveLast Move to last record MKGraph1.MoveLast
MoveNext Move to next record MKGraph1.MoveNext
MovePrevious Move to previous record MKGraph1.MovePrevious
DataToGraph Tell ActiveX which columns to draw MKGraph1.DataToGraph
DrawGraph Begin to graph (three steps) MKGraph1.DrawGraph

To use my ActiveX (MKGraph), you must add only one file from files: "Microsoft DAO 3.51 (or 3.6) Object Library" to the reference and add (MKGraph) control to the Toolbox.

Using the Code

LoadData() procedure:

Dim MyDataFile As String
Dim MyDb As Database
Dim MySql As String

   MyDataFile = App.Path + "\DataFile\" + "Sale.mdb"
   Set MyDb = OpenDatabase(MyDataFile, False, False, ";pwd=" & "")
   MySql = "SELECT * FROM Products Order by ProductID"
   MKGraph1.DatabaseName = MyDataFile
   MKGraph1.RecordSource = MySql
   MKGraph1.RecordsetType = vbRSTypeDynaset
   MKGraph1.Refresh

cmdLoad_Click() procedure:

'Call LoadData procedure
LoadData

cmdAdd_Click() procedure:

' add new record to data base file
FDGrid1.AddNewRow

cmdCancel_Click() procedure:

' don't save record
FDGrid1.AddNewRow

cmdDelete_Click() procedure:

' delete record from data base file
FDGrid1.DeleteRow

cmdUpdate_Click() procedure:

' save record to data base file
FDGrid1.Update

cmdDraw_Click() procedure:

' Tell ActiveX control which data to draw
MKGraph1.DataToGraph

' Begin to graph: choose type of graph, edit title and legend, view graph.
MKGraph1.DrawGraph

When you click cmdDraw button, the ActiveX control will graph with three steps:

  • Choose the graph type (when you see the form which has the caption "Graph type": click any graph type).
  • Edit the title and legend of graph (when you see the form which has the caption "Graph data").
  • Graph chart (now you see your graph on the final form).

Remarks

When extracting the file FlexToGraph.zip, you can find the file MKGraph.ocx in the folder ActiveXcontrol.

Find database file Sale.mdb in the DataFile folder.

Find the project prjFlexGraph (to test the ActiveX control) in the folder FlexToGraph.

This project has only one form (Form1).

This form has:

  • Button to load data from database file
  • Button to graph
  • Button to add record
  • Button to delete record
  • Button to update (save record)
  • Button to cancel update
  • Four buttons for MoveFirst, MoveLast, MoveNext and MovePrevious
  • Button to exit

Last Words

I hope this article is useful and helps you to graph some data in your applications. Please tell me if you have any ideas or if you find any problems. Thanks to CodeProject and thanks to all.

History

  • 30th May, 2008: Initial post

Mostafa Kaisoun
M_Kaisoun@hotmail.com

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here