1.绑定到数据源
2.使用AddItem方法添加数据
3.逐一单元格添加数据
说明:添加部件"Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB)"才能使用MSHFlexGrid。
程序代码
Option Explicit
Dim objConn As ADODB.Connection
Dim objRs As ADODB.Recordset
Private Sub Form_Load()
On Error Resume Next
Set objConn = New ADODB.Connection
Set objRs = New ADODB.Recordset
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\demo3.mdb;"
objConn.Open
objRs.CursorLocation = adUseClient
objRs.Open "Select ProductId,ProductName,Discontinued FROM Products", objConn, adOpenStatic, adLockReadOnly
Set MSHFlexGrid1.DataSource = objRs
If Err.Number <> 0 Then
MsgBox Err.Description
End If
On Error GoTo 0
End Sub
'释放资源
Private Sub Form_Unload(Cancel As Integer)
'不操作此步会出错:The current row is not available
If TypeName(MSHFlexGrid1.DataSource) <> "Nothing" Then
Set MSHFlexGrid1.DataSource = Nothing
End If
If TypeName(objRs) <> "Nothing" Then
objRs.Close
Set objRs = Nothing
End If
If TypeName(objConn) <> "Nothing" Then
objConn.Close
Set objConn = Nothing
End If
End Sub
Dim objConn As ADODB.Connection
Dim objRs As ADODB.Recordset
Private Sub Form_Load()
On Error Resume Next
Set objConn = New ADODB.Connection
Set objRs = New ADODB.Recordset
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\demo3.mdb;"
objConn.Open
objRs.CursorLocation = adUseClient
objRs.Open "Select ProductId,ProductName,Discontinued FROM Products", objConn, adOpenStatic, adLockReadOnly
Set MSHFlexGrid1.DataSource = objRs
If Err.Number <> 0 Then
MsgBox Err.Description
End If
On Error GoTo 0
End Sub
'释放资源
Private Sub Form_Unload(Cancel As Integer)
'不操作此步会出错:The current row is not available
If TypeName(MSHFlexGrid1.DataSource) <> "Nothing" Then
Set MSHFlexGrid1.DataSource = Nothing
End If
If TypeName(objRs) <> "Nothing" Then
objRs.Close
Set objRs = Nothing
End If
If TypeName(objConn) <> "Nothing" Then
objConn.Close
Set objConn = Nothing
End If
End Sub
2.使用AddItem方法添加数据
程序代码
MSHFlexGrid1.Cols = 5
MSHFlexGrid1.AddItem vbTab & "1" & vbTab & "2" & vbTab & "3" & vbTab & "4"
MSHFlexGrid1.AddItem vbTab & "5" & vbTab & "6" & vbTab & "7" & vbTab & "8"
MSHFlexGrid1.AddItem vbTab & "9" & vbTab & "10" & vbTab & "11" & vbTab & "12"
MSHFlexGrid1.AddItem vbTab & "13" & vbTab & "14" & vbTab & "15" & vbTab & "16"
'删除默认空白行
'此操作不能放在 MSHFlexGrid1.Cols = 5 后,否则出错: Cannot remove last non-fixed row.
MSHFlexGrid1.RemoveItem (1)
MSHFlexGrid1.AddItem vbTab & "1" & vbTab & "2" & vbTab & "3" & vbTab & "4"
MSHFlexGrid1.AddItem vbTab & "5" & vbTab & "6" & vbTab & "7" & vbTab & "8"
MSHFlexGrid1.AddItem vbTab & "9" & vbTab & "10" & vbTab & "11" & vbTab & "12"
MSHFlexGrid1.AddItem vbTab & "13" & vbTab & "14" & vbTab & "15" & vbTab & "16"
'删除默认空白行
'此操作不能放在 MSHFlexGrid1.Cols = 5 后,否则出错: Cannot remove last non-fixed row.
MSHFlexGrid1.RemoveItem (1)
3.逐一单元格添加数据
程序代码
Dim i, j, k As Integer
'设置行列数
With MSHFlexGrid1
.Rows = 5
.Cols = 5
End With
'添加表头
MSHFlexGrid1.Row = 0
For i = 1 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.Col = i
MSHFlexGrid1.Text = "列" & i
Next
'添加记录
k = 1
For i = 1 To MSHFlexGrid1.Rows - 1
For j = 1 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = j
MSHFlexGrid1.Text = k
k = k + 1
Next
Next
'设置行列数
With MSHFlexGrid1
.Rows = 5
.Cols = 5
End With
'添加表头
MSHFlexGrid1.Row = 0
For i = 1 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.Col = i
MSHFlexGrid1.Text = "列" & i
Next
'添加记录
k = 1
For i = 1 To MSHFlexGrid1.Rows - 1
For j = 1 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = j
MSHFlexGrid1.Text = k
k = k + 1
Next
Next
说明:添加部件"Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB)"才能使用MSHFlexGrid。