ps2存档转换:ADODB.Connection与MSFlexGrid

来源:百度文库 编辑:中科新闻网 时间:2024/05/03 02:57:18
在vb中使用ado进行数据库的连接,取得的数据如何像Data控件一样直接填充到MSFlexGrid控件中.
或者说如何实现ado数据集和MSFlexGrid控件进行连接.
谢了
查询取得的数据如何用表格表现出来

非常感谢各位的帮助!

很多初学者都喜欢使用装载方式与表格控件关联,但是VB只提供DataGrid拥有装载方式。而其他的表格控件都没有。虽然本人不喜欢使用装载方式,但是在闲暇之余还是做了几个函数来实现表格的自动装载过程。

以下的装载过程都使用ADO数据源,由于我不经常使用Adobc控件,因此作了半个小时也没连接成功,所以放弃了。

装载例子:

Public conn As New ADODB.Connection
Public Rs As ADODB.Connection
conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Zzgl;Data Source=FIELDHOME"
Dim aRs As New ADODB.Recordset
aRs.Open "select * from 票据页面", conn, 1
AdoToMshfGrid MSHFlexGrid1, aRs

'这是List的装载ADO过程
Public Sub AdoToList(ByRef LV As ListView, ByVal Rs As Recordset)
Dim i As Long
Dim xItem As ListItem
Dim xColH As ColumnHeader
LV.ColumnHeaders.Clear
LV.ListItems.Clear
LV.View = 3
For i = 0 To Rs.Fields.Count - 1
Set xColH = LV.ColumnHeaders.Add(, , Rs(i).Name)
Next
Do While Rs.EOF = False
Set xItem = LV.ListItems.Add(, , Rs(0))
For i = 1 To Rs.Fields.Count - 1
xItem.SubItems(i) = Rs(i)
Next
Rs.MoveNext
Loop
End Sub

'这是MsfxGrid的装载ADO过程
Public Sub AdoToMsfxGrid(ByRef MG As MSFlexGrid, ByVal Rs As Recordset)
Dim i As Long
Dim j As Long
MG.Clear
MG.Cols = Rs.Fields.Count
MG.Rows = Rs.RecordCount + 1
For i = 0 To Rs.Fields.Count - 1
MG.TextMatrix(0, i) = Rs(i).Name
Next
For j = 1 To Rs.RecordCount
For i = 0 To Rs.Fields.Count - 1
MG.TextMatrix(j, i) = Rs(i)
Next
Rs.MoveNext
Next
End Sub

'这是MshfGrid的装载ADO过程
Public Sub AdoToMshfGrid(ByRef MG As MSHFlexGrid, ByVal Rs As Recordset)
Dim i As Long
Dim j As Long
MG.Clear
MG.Cols = Rs.Fields.Count
MG.Rows = Rs.RecordCount + 1
For i = 0 To Rs.Fields.Count - 1
MG.TextMatrix(0, i) = Rs(i).Name
Next
For j = 1 To Rs.RecordCount
For i = 0 To Rs.Fields.Count - 1
MG.TextMatrix(j, i) = Rs(i)
Next
Rs.MoveNext
Next
End Sub

假定adodc1已设定完毕

Set MSHFlexGrid1.DataSource = Adodc1