删除选定的MSHFlexGrid控件中的一行

           昨天晚上到今天上午,一直在弄那个添加删除用户的窗体。其实就纠结在一个问题上,如何点击一个网格,删除选中的Mshflexgrid控件中的一行。

           由于对这个控件在学生信息管理系统时,学的很生疏,所以又从头学了一遍。

           先来看一看常用属性:

          AddItem向网格中加入一新行

          Clear 清除网格中的内容

          ClearStructure清除网格的结构(映射信息)     

          RemoveItem从网格中清除一行

    rowsel返回选中的行

    colsel返回选中的列

    TextMatrix设置/返回某个选定行,列的单元的文本内容

    RowsLong返回网格的行的总数或者或BAND的行的总数
    一些常用功能有这些属性也就够用了。

    下面是如何删除表格中的数据和数据库中数据的代码:

   

Private Sub cmdDelete_Click() '删除选中的行
   
'先移除表中的数据
    '保存要移除的那行的用户名
    DelUser = Trim(myFlexGrid.TextMatrix(myFlexGrid.RowSel, 0))
    
    '删除表中的此行
    RowIndex = myFlexGrid.RowSel
    myFlexGrid.RemoveItem (RowIndex)
    
'删除数据库中数据

    '先判断删除的是否是空行
    If myFlexGrid.TextMatrix(myFlexGrid.RowSel, myFlexGrid.ColSel) = "" Then
        Exit Sub
    Else          '当删除的不是空行时
        DelSQL = "delete from userinfo where 用户名= '" & DelUser & "'"
        Call ExecuteSQL(DelSQL, strMsg)  '执行查询
    End If
End Sub


 

这里需要注意的是,在表格中使用Removeitem虽然移除了数据,但是别忘了同时删除数据库中的数据。在删除数据库中的数据时,我是以用户名作为查询的字段,所以在表格中数据移除之前,需要注意的是,要先对用户名进行了保存,不然会有下标越界的错误(为什么?都删掉了,再读取,当然越界。)

 


 

 

 

       

你可能感兴趣的:(VB)