昨天晚上到今天上午,一直在弄那个添加删除用户的窗体。其实就纠结在一个问题上,如何点击一个网格,删除选中的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虽然移除了数据,但是别忘了同时删除数据库中的数据。在删除数据库中的数据时,我是以用户名作为查询的字段,所以在表格中数据移除之前,需要注意的是,要先对用户名进行了保存,不然会有下标越界的错误(为什么?都删掉了,再读取,当然越界。)