FlexGrid 作为 DataGrid






2.50/5 (2投票s)
ActiveX 控件将 FlexGrid 作为 DataGrid 并编辑 FlexGrid

引言
我创建了一个新的 ActiveX 控件 (FDGrid
),使 FlexGrid
控件充当 DataGrid
控件。有了这个 ActiveX 控件,您可以
- 连接数据库
- 用表格填充
FlexGrid
- 编辑和添加记录
MoveFirst
、MoveLast
、MoveNext
和MovePrevious
- 编辑单元格后自动保存 (更新)
- 无需连接到数据库文件即可编辑网格
背景
使用我的 ActiveX 控件 (FDGrid
) 时,如果您将其用作 DataGrid
,则必须从数据库文件中加载网格数据。请参阅表单中的代码 (Form1
)。您可以编辑网格而不加载数据。请参阅表单中的代码 (Form2
)。我的 ActiveX 控件的一些属性和方法如下表所示
方法/属性 | 定义 | 示例 |
DatabaseName |
设置数据库名称 | FDGrid1.DatabaseName = 文件名 |
DataSource |
设置 Recordset 到网格 |
FDGrid1.DataSource = rs |
AddNewRow |
向网格添加新记录 | FDGrid1.AddNewRow |
DeleteRow |
删除记录 | FDGrid1.DeleteRow |
更新 |
添加后保存记录 | FDGrid1.Update |
CancelUpdate |
取消更新 | FDGrid1.CancelUpdate |
MoveFirst |
移动到第一条记录 | FDGrid1.MoveFirst |
MoveLast |
移动到最后一条记录 | FDGrid1.MoveLast |
MoveNext |
移动到下一条记录 | FDGrid1.MoveNext |
MovePrevious |
移动到上一条记录 | FDGrid1.MovePrevious |
其他属性和方法与 (MSFlexGrid
) 控件相同。
要使用我的 ActiveX (FDGrid
),您只需从文件中添加一个文件:“Microsoft DAO 3.51 (或 3.6) 对象库”,并将其添加到引用中,并将 (FDGrid
) 控件添加到工具箱中。
Using the Code
Form1(连接到数据库文件并将 ActiveX 用作 MSDataGrid)
LoadData()
过程
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"
FDGrid1.DatabaseName = MyDataFile
FDGrid1.RecordSource = MySql
FDGrid1.RecordsetType = vbRSTypeDynaset
FDGrid1.Refresh
Form_Load()
过程
'Call LoadData procedure
LoadData
cmdAdd_Click()
过程
' add new record to data base file
FDGrid1.AddNewRow
cmdCancel_Click()
过程
' don't save record
FDGrid1.AddNewRow
cmdDelete_Click()
过程
' delete record from data base file
FDGrid1.DeleteRow
cmdUpdate_Click()
过程
' save record to data base file
FDGrid1.Update
请参阅 Form1
以查看 MoveFirst
、MoveLast
、MoveNext
和 MovePrevious
的代码。
Form2(使用 ActiveX 编辑网格)
LoadData()
过程
FDGrid1.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.
备注
解压 FDGrid.zip 文件后,您可以在 ActiveXcontrol 文件夹中找到 FDGrid.ocx 文件。
在 DataFile 文件夹中找到数据库文件 Sale.mdb。
在 FDGrid 文件夹中找到 prjBoundFlex
项目(用于测试 ActiveX 控件)。
该项目有三个表单 (frmMain
, Form1
和 Form2
)。
Form1
用于将网格连接到数据库文件。Form2
用于编辑网格。
最后的话
我希望这篇文章对您有所帮助,并在您的应用程序需要连接到数据库或需要编辑网格时为您提供帮助。如果您有任何想法或发现任何问题,请告诉我。感谢 Code Project,感谢大家。
历史
- 2008年5月12日:初始发布
Mostafa Kaisoun
M_Kaisoun@hotmail.com