一开始用了msflexgrid控件,想显示一个数据库中的相关数据(并不是所有,某些字段不显示),希望在其中编辑,后来发现用datagrid控件更好,这是我在用msflexgrid控件时写的代码,大家看看如果用msflexgrid控件该怎么写?谢谢
Private Sub FillGrid()
    Dim iRow As Integer
    iRow = 1
    With Grid1
        
        While Not adoRstBasic.EOF
            .AddItem ""
            .TextMatrix(iRow, 0) = iRow
            .TextMatrix(iRow, 1) = convertNull(adoRstBasic!Number)
            .TextMatrix(iRow, 2) = convertNull(adoRstBasic!Name)
            .TextMatrix(iRow, 3) = convertNull(adoRstBasic!Department)
            .TextMatrix(iRow, 4) = convertNull(adoRstBasic!Headship)
            .TextMatrix(iRow, 5) = convertNull(adoRstBasic!Postion)
            .TextMatrix(iRow, 6) = convertNull(adoRstBasic!DutyState)
            adoRstBasic.MoveNext
            iRow = iRow + 1        Wend
    End With
End Sub

解决方案 »

  1.   

    set datagrid1.datasource=adoRstBasic
      

  2.   

    我想问一下,我只想在datagrid中显示所有字段中的一部分,如何过滤掉其他的部分(比如说表中有10个字段,如何将其他5个过滤掉),用哪个属性或是函数什么的?还有比如说我显示了5个字段的内容,我只想允许其中的一个字段被修改,其余的不可以修改,怎么实现
      

  3.   

    如果datagrid不能实现这个功能不能实习,有什么其他的可以吗,大家推荐一下,急啊~
      

  4.   

    只显示5个字段,你在SQL语句里面就可以做到了。
    select field1,field2,field3,field4,field5 from tablename
    你需要哪些字段就把它们的字段名放在你的select后面,我猜你用的是select * from tablename,这样当然是把所有的字段都提出来了。
      

  5.   

    至于你说的第二个功能
    Private Sub DataGrid1_KeyPress(KeyAscii As Integer)
        If (DataGrid1.Col=0) or (DataGrid1.Col=1) or (DataGrid1.Col=3) or (DataGrid1.Col=4) Then'只许用户编辑第三列。
           KeyAscii=0
        End If
    End Sub
      

  6.   

    台谢谢kissoflife了,感激不尽啊~~~~~