读书人

求路过的好心人帮帮忙解决方案

发布时间: 2012-01-12 22:11:58 作者: rapoo

求路过的好心人帮帮忙
我有几个问题需要解决,希望能得到大家的帮助
1、我用MSFlexGrid控件把数据库中的数据调出来,但是显示的时候空了4行才开始显示数据,请问是哪里的原因(代码如下)
Dim txtsql As String
Dim mrc As ADODB.Recordset
With MSFlexGrid1
.Cols = 7
.FixedRows = 1
.FixedCols = 0
.Height = 5655
.Width = 9015
.BackColorFixed = &HC0E0FF
.BackColorSel = &H8000000D 'vbWhite
.ForeColorSel = vbWhite
.BackColorBkg = &H8000000E
.ForeColorFixed = &HC0& '&HFF&
.FormatString = "^学生姓名 " & vbTab _
& "^学生学号 " & vbTab _
& "^所属班级 " & vbTab _
& "^预约课程 " & vbTab _
& "^预约实验 " & vbTab _
& "^预约时间 " & vbTab _
& "^刷卡卡号 " & vbTab
Dim i As Integer
For i = 0 To .Rows - 1
If i = 0 Then
.RowHeight(i) = 336
Else
.RowHeight(i) = 336
End If



Next
For i = 0 To .Cols - 1
.ColWidth(i) = 1500
Next
End With
txtsql = "select * from tBookRecord where courseName= ' " & Form1.str1 & " ' and experimentName= ' " & Form1.str2 & " ' "
Set mrc = ExecuteSQL(txtsql, "xxx.mdb ")
If mrc.RecordCount > 0 Then
mrc.MoveFirst
Do While Not mrc.EOF
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = mrc.Fields(1)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = mrc.Fields(8)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = mrc.Fields(2)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 4) = mrc.Fields(3)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 5) = mrc.Fields(5) & "-- " & mrc.Fields(9)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 6) = mrc.Fields(11)
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
mrc.MoveNext
Loop
End If
Set mrc = Nothing

2、用MSFlexGrid控件把数据库中的数据调出来后,我想实现当鼠标左键点击一行中的一个字段就显示选中一行数据,点击右键弹出菜单,将一行的数据的值传到另一个窗体中,请问该如何实现

[解决办法]
Do While Not mrc.EOF
MSFlexGrid1.TextMatrix(rs.AbsolutePosition+1, 1) = mrc.Fields(1)
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
mrc.MoveNext
Loop
改成这样
[解决办法]
Do While Not mrc.EOF
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = mrc.Fields(1)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 2) = mrc.Fields(8)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 3) = mrc.Fields(2)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 4) = mrc.Fields(3)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 5) = mrc.Fields(5) & "-- " & mrc.Fields(9)
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 6) = mrc.Fields(11)
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
mrc.MoveNext
Loop
============================================================================
你没有从第1行开始填充,而是从.rows-1行开始的
如果你的Msflexgrid开始的时候已经有好几行,必然会有空行


试着在循环填充前面加一句msflexgrid1.rows=2

读书人网 >VB

热点推荐