首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

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

2012-01-12 
求路过的好心人帮帮忙我有几个问题需要解决,希望能得到大家的帮助1、我用MSFlexGrid控件把数据库中的数据调

求路过的好心人帮帮忙
我有几个问题需要解决,希望能得到大家的帮助
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

热点排行