VB中MSHFlexGrid1.控件的使用

2025-02-25 01:35:16
推荐回答(3个)
回答1:

数据库连接没有写,下面是修改的代码,已经测试过,可读性高
conn.Open
rs.Open "select * from 用户表 where 权限 =1 ", conn, 2, 2
With MSHFlexGrid1 '使用块,代码非常清晰
.Cols = 4
.Rows = 1 + rs.RecordCount '动态更新行数
.TextMatrix(0, 0) = "序号"
.ColWidth(0) = 500
.TextMatrix(0, 1) = "用户名"
.ColWidth(1) = 1200
.TextMatrix(0, 2) = "联系电话"
.ColWidth(2) = 1200
.TextMatrix(0, 3) = "电子邮箱"
.ColWidth(3) = 1200
.CellAlignment = 4 '
For i = 1 To rs.RecordCount '采用循环显示数据,注意:“rs!”后面是字段名称
.TextMatrix(i, 0) = rs!序号
.TextMatrix(i, 1) = rs!用户名
.TextMatrix(i, 2) = rs!联系电话
.TextMatrix(i, 3) = rs!电子邮箱
rs.MoveNext '必须移动记录集指针
Next i
End With '块结束
rs.Close '关闭记录集对象,不能省略
Set rs = Nothing '从内存清除记录集对象
conn.Close '关闭数据库连接对象,不能省略
Set conn = Nothing '从内存清除数据库连接对象

回答2:

给你个参考代码
Private Sub Form_Load()
MSHFlexGrid1.FixedCols = 0
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim SqlStr As String
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=123"
SqlStr = "Select * From 会员消费"
rst.CursorLocation = adUseClient
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText '打开记录集
Set MSHFlexGrid1.DataSource = rst '数据源
End Sub

回答3:

在next i后面加上:
rs.MoveFirst
MSHFlexGrid2.Rows = rs.RecordCount + 1
For i = 0 To rs.RecordCount - 1
MSHFlexGrid2.Row = i + 1
For k = 0 To 3
MSHFlexGrid2.Col = k
MSHFlexGrid2.Text = rs.Fields(k).Value
Next k
rs.MoveNext
Next i
环境:winxp sp3 vb6 sp6