FlexGrid as DataGrid

4
FlexGrid as DataGrid Introduction I create a new AciveX control ( FDGrid) to let FlexGrid control as DataGrid control. With this ActiveX, you can: Connect with database Fill FlexGrid with table Edit and add records MoveFirst , MoveLast, MoveNext and MovePrevious Auto save (Update) after Edit cell Edit grid without connecting to database file Background When using my ActiveX control (FDGrid), if you use it as DataGrid you must load the grid with data from the database file. See the code in the form ( Form1). You can edit the grid without loading data. See the code in the form ( Form2). Some properties and methods of my ActiveX are in the following table: Method/Property Definition Example DatabaseName Set database name FDGrid1.DatabaseName = FileName DataSource Set Recordset to grid FDGrid1.DataSource = rs AddNewRow Add new record to grid FDGrid1.AddNewRow DeleteRow Delete record FDGrid1.DeleteRow Update Save record after add FDGrid1.Update CancelUpdate Cancel update FDGrid1.CancelUpdate MoveFirst Move to first record FDGrid1.MoveFirst MoveLast Move to last record FDGrid1.MoveLast MoveNext Move to next record FDGrid1.MoveNext

Transcript of FlexGrid as DataGrid

Page 1: FlexGrid as DataGrid

8/6/2019 FlexGrid as DataGrid

http://slidepdf.com/reader/full/flexgrid-as-datagrid 1/4

FlexGrid as DataGrid

Introduction

I create a new AciveX control (FDGrid) to let FlexGrid control as DataGrid control.

With this ActiveX, you can:

• Connect with database

• Fill FlexGrid with table

• Edit and add records

• MoveFirst, MoveLast, MoveNext and MovePrevious

• Auto save (Update) after Edit cell

• Edit grid without connecting to database file

Background 

When using my ActiveX control (FDGrid), if you use it as DataGrid you must load the

grid with data from the database file. See the code in the form (Form1). You can edit the

grid without loading data. See the code in the form (Form2). Some properties and

methods of my ActiveX are in the following table:

Method/Property Definition ExampleDatabaseName Set database name FDGrid1.DatabaseName = FileName

DataSource Set Recordset to grid FDGrid1.DataSource = rs

AddNewRow Add new record to grid FDGrid1.AddNewRow

DeleteRow Delete record FDGrid1.DeleteRow

Update Save record after add FDGrid1.Update

CancelUpdate Cancel update FDGrid1.CancelUpdate

MoveFirst Move to first record FDGrid1.MoveFirst

MoveLast Move to last record FDGrid1.MoveLast

MoveNext Move to next record FDGrid1.MoveNext

Page 2: FlexGrid as DataGrid

8/6/2019 FlexGrid as DataGrid

http://slidepdf.com/reader/full/flexgrid-as-datagrid 2/4

Method/Property Definition ExampleMovePrevious Move to previous record FDGrid1.MovePrevious

Other Properties and Methods as (MSFlexGrid) control.

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

Using the Code

Form1 (connect to the database file and use ActiveX as MSDataGrid)

LoadData() procedure:

CollapseDim MyDataFile As String

Dim MyDb As DatabaseDim MySql As String

MyDataFile = App.Path + "\DataFile\" + "Sale.mdb"

Set MyDb = OpenDatabase(MyDataFile, False, False, ";pwd=" & "")

MySql = "SELECT * FROM Products Order by ProductID"

FDGrid1.DatabaseName = MyDataFile

FDGrid1.RecordSource = MySql

FDGrid1.RecordsetType = vbRSTypeDynaset

FDGrid1.Refresh

Form_Load() procedure:

Collapse'Call LoadData procedure

LoadData

cmdAdd_Click() procedure:

Collapse' add new record to data base file

FDGrid1.AddNewRow

cmdCancel_Click() procedure:

Collapse' don't save record 

FDGrid1.AddNewRow

cmdDelete_Click() procedure:

Collapse' delete record from data base file

Page 3: FlexGrid as DataGrid

8/6/2019 FlexGrid as DataGrid

http://slidepdf.com/reader/full/flexgrid-as-datagrid 3/4

FDGrid1.DeleteRow

cmdUpdate_Click() procedure:

Collapse' save record to data base file

FDGrid1.Update

Refer to Form1 to see code for MoveFirst, MoveLast, MoveNext and MovePrevious.

Form2 (use ActiveX to edit grid)

LoadData() procedure:

CollapseFDGrid1.Cols = 8 'grid has 8 columns

FDGrid1.Rows = 15 'grid has 15 rows

'set alignment of fixed row to center 

For c = 1 To FDGrid1.Cols - 1

FDGrid1.TextMatrix(0, c) = "Col " & CStr(c)

FDGrid1.ColAlignmentHeader(c) = flexAlignCenterCenter

Next c

' fill some rows

For r = 1 To 5

For c = 1 To FDGrid1.Cols - 1

FDGrid1.TextMatrix(r, c) = "Cell(" & CStr(r) & "," & CStr(c) & ")"

Next c

Next r

' You can edit any cell, just click any cell then try to edit it.

Remarks

When extracting the FDGrid.zip file, you can find the FDGrid.ocx file in the

 ActiveXcontrol folder.

Find the database file Sale.mdb in the DataFile folder.

Find the prjBoundFlex   project (to test the ActiveX control) in the FDGrid folder.

This project has three forms (frmMain, Form1 and Form2).

• Form1 is to connect grid with database file.

• Form2 is to edit grid.

Page 4: FlexGrid as DataGrid

8/6/2019 FlexGrid as DataGrid

http://slidepdf.com/reader/full/flexgrid-as-datagrid 4/4

Last Words

I hope this article is useful and helps you when your application needs to connect with the

database or needs to edit grid. Please tell me if you have any ideas or if you find any problems. Thanks to Code Project and thanks to all.