如何在MSFlexGrid上选定一行并可以删除,修改选定的这一行。。在线等大哥大姐姐帮帮忙。谢谢

时间:2022-05-19 05:28:59
用什么连数据都行,,只要能MSFlexGrid上选定一行并可以删除,修改选定的这一行,,就行
我是VB初学者//

13 个解决方案

#1


有没有人帮我啊,,我找不到方法啊

#2


delete from table where column='" & msflexgrid.TextMatrix(msflexgrid.row,msflexgrid.col) & "'"

#3


什么意思啊?
删除MSFlexGrid上显示的数据:
MSFlexGrid.RemoveItem MSFlexGrid.Row
MSFlexGrid不能直接修改显示的数据

#4


http://beyond19.51.net/123.jpg
就像这里画的一样,用什么连数据库,什么控件都不要紧,,只要能像上面网格显视。点击后可以删除,修改
等的操作//我刚学,谢谢大家的帮忙

#5


你可以试一下lgxgrid控件,下载地址:
http://lgxyslldw.512j.com
有比较详尽的技术支持文档.用这个控件,只要用lgxgrid1.DelRow (RowID)这一句就可以删除一行,RowId是要删除行的行号.
对于这个控件,你还可以到http://lgxyslldw.512j.com/lc/VB示例.rar下载这个控件的数据库应用示例.

#6


: lgxysl(我心欲静) 谢谢你。。。可是lgxgrid控件要用钱的啊,所以我还是不能作的///

#7


怎么都没有人来呢?是不是这个总是很难呢?

#8


****: lgxysl(我心欲静) 谢谢你。。。可是lgxgrid控件要用钱的啊,所以我还是不能作的///****
用不了多少钱,还不够到酒店吃一顿饭!

#9


“工程”-》“部件”-》"Microsoft DataGrid Control"

这个就是你要的那个!!!

你拖动它到窗体,然后右击点属性,在属性页中可以看到“允许修改”,“允许增加”,“允许删除”等复选框,框一下后就可以删除或修改等操作了。

至于和数据库绑定的话,需要用ADO控件或Recordset记录集对象,你可以搜索一下以前的帖子。


哈哈~~
钱倒是不必了,给分就谢了哦!

#10


Private Sub fgrid1_click() '单击MSFlexGrid
sphy = Trim(FGrid1.TextMatrix(FGrid1.Row, 0))
delrecord
End Sub

Private Sub fgrid1_RowColChange()'用上下键在MSFlexGrid上选择
sphy = Trim(FGrid1.TextMatrix(FGrid1.Row, 0))
delrecord
End Sub

Private Sub DeleteRecord()'删除
    Dim I As Integer '
    Dim Ssql As String
    Dim response As String
    response = MsgBox("真的删除当前记录?", vbInformation + vbYesNo, "警告")
    If response = vbYes Then
          Ssql = "delete from login where loginname='" & sphy & "'"
          gcnLeaguers.Execute (Ssql)
          MsgBox "删除成功!", vbInformation + vbOKOnly, "系统提示"
    End If
Exit Sub
End Sub
删除后可能还要刷新一下,你试试吧

#11


MSDN上有现成的例子啊
去找一下吧

#12


首先分析一下你的需求:只要求删除或修改你指定的行,意思就是让电脑知道你所在的行的行数,然后就好办了.
dim m as integer'////定义一个窗体级变量,

Private Sub MSFlexGrid1_Click()'鼠标点击事件

m = val(MSFlexGrid1.MouseRow)'///取得行数
If m < 1 Then'///////////////防止点在其他地方导致溢出
  m = 1
End If

If MSFlexGrid1.rows > 1 Then'/////////显示选定行的内容到TextBox里以便修改
    Frame1.Enabled = False
    Text9.Text = MSFlexGrid1.TextMatrix(m, 0) 'id
    Text1.Text = MSFlexGrid1.TextMatrix(m, 1) '帐号
    Text2.text.Text = MSFlexGrid1.TextMatrix(m, 2) '密码
    Command6.Enabled = True'/////////修改按纽变亮
    Command7.Enabled = True'////////删除变亮
End If

End Sub

Private Sub Command6_Click()'///////////////////修改
   ....'////修改数据库代码略
   MSFlexGrid1.TextMatrix(m, 1) = Trim(Text1.Text)
   MSFlexGrid1.TextMatrix(m, 2) = Trim(Text2.Text)
   MSFlexGrid1.Refresh
End Sub
Private Sub Command7_Click()'///////////////////删除
   ....'////删除数据库代码略
   If MSFlexGrid1.row = MSFlexGrid1.rows - 1 Then
         MSFlexGrid1.rows = MSFlexGrid1.rows - 1
        Else
         DelGrid MSFlexGrid1
         MSFlexGrid1.rows = MSFlexGrid1.rows - 1
         MSFlexGrid1.Refresh
      End If
End Sub

Dim Sub DelGrid(strGrid As MSFlexGrid)'//////////一个删除网格的公用过程
   Dim nero()
   Dim ai As Integer
   Dim xi As Integer
   Dim yi As Integer
   Dim zi As Integer
   xi = strGrid.cols - 1
   ReDim nero(xi)

   For ai = strGrid.row + 1 To strGrid.rows - 1
       strGrid.row = ai
       For yi = 0 To strGrid.cols - 1
         strGrid.col = yi
         nero(yi) = strGrid
       Next
       strGrid.row = ai - 1
       For zi = 0 To strGrid.cols - 1
        strGrid.col = zi
        strGrid = nero(zi)
       Next
   Next


End Sub


#13



1、删除选中的一行,我有一个另类的方法,就是将该行的行高设定为0,这样给用户的感觉是该行删除了,如果想撤销,恢复该行的行高就行了,退出保存数据的时候判断如果某一行的行高为0,就将改行数据从数据库中删除,具体代码要看你的数据库操作方式

2、修改选中的一行可以有两种方法
 a、用一个textbox控件,鼠标点哪一格就将text移动(move)到哪一格,并将值赋给textbox,当鼠标移开的时候,将修改后的textbox的值再赋给原来的格,具体代码就不用罗嗦了

 b、打开一个新窗体,将一行上的所有内容都用textbox显示在窗体上供用户修改,保存时候将tetxbox的值赋给对应的格即可

#1


有没有人帮我啊,,我找不到方法啊

#2


delete from table where column='" & msflexgrid.TextMatrix(msflexgrid.row,msflexgrid.col) & "'"

#3


什么意思啊?
删除MSFlexGrid上显示的数据:
MSFlexGrid.RemoveItem MSFlexGrid.Row
MSFlexGrid不能直接修改显示的数据

#4


http://beyond19.51.net/123.jpg
就像这里画的一样,用什么连数据库,什么控件都不要紧,,只要能像上面网格显视。点击后可以删除,修改
等的操作//我刚学,谢谢大家的帮忙

#5


你可以试一下lgxgrid控件,下载地址:
http://lgxyslldw.512j.com
有比较详尽的技术支持文档.用这个控件,只要用lgxgrid1.DelRow (RowID)这一句就可以删除一行,RowId是要删除行的行号.
对于这个控件,你还可以到http://lgxyslldw.512j.com/lc/VB示例.rar下载这个控件的数据库应用示例.

#6


: lgxysl(我心欲静) 谢谢你。。。可是lgxgrid控件要用钱的啊,所以我还是不能作的///

#7


怎么都没有人来呢?是不是这个总是很难呢?

#8


****: lgxysl(我心欲静) 谢谢你。。。可是lgxgrid控件要用钱的啊,所以我还是不能作的///****
用不了多少钱,还不够到酒店吃一顿饭!

#9


“工程”-》“部件”-》"Microsoft DataGrid Control"

这个就是你要的那个!!!

你拖动它到窗体,然后右击点属性,在属性页中可以看到“允许修改”,“允许增加”,“允许删除”等复选框,框一下后就可以删除或修改等操作了。

至于和数据库绑定的话,需要用ADO控件或Recordset记录集对象,你可以搜索一下以前的帖子。


哈哈~~
钱倒是不必了,给分就谢了哦!

#10


Private Sub fgrid1_click() '单击MSFlexGrid
sphy = Trim(FGrid1.TextMatrix(FGrid1.Row, 0))
delrecord
End Sub

Private Sub fgrid1_RowColChange()'用上下键在MSFlexGrid上选择
sphy = Trim(FGrid1.TextMatrix(FGrid1.Row, 0))
delrecord
End Sub

Private Sub DeleteRecord()'删除
    Dim I As Integer '
    Dim Ssql As String
    Dim response As String
    response = MsgBox("真的删除当前记录?", vbInformation + vbYesNo, "警告")
    If response = vbYes Then
          Ssql = "delete from login where loginname='" & sphy & "'"
          gcnLeaguers.Execute (Ssql)
          MsgBox "删除成功!", vbInformation + vbOKOnly, "系统提示"
    End If
Exit Sub
End Sub
删除后可能还要刷新一下,你试试吧

#11


MSDN上有现成的例子啊
去找一下吧

#12


首先分析一下你的需求:只要求删除或修改你指定的行,意思就是让电脑知道你所在的行的行数,然后就好办了.
dim m as integer'////定义一个窗体级变量,

Private Sub MSFlexGrid1_Click()'鼠标点击事件

m = val(MSFlexGrid1.MouseRow)'///取得行数
If m < 1 Then'///////////////防止点在其他地方导致溢出
  m = 1
End If

If MSFlexGrid1.rows > 1 Then'/////////显示选定行的内容到TextBox里以便修改
    Frame1.Enabled = False
    Text9.Text = MSFlexGrid1.TextMatrix(m, 0) 'id
    Text1.Text = MSFlexGrid1.TextMatrix(m, 1) '帐号
    Text2.text.Text = MSFlexGrid1.TextMatrix(m, 2) '密码
    Command6.Enabled = True'/////////修改按纽变亮
    Command7.Enabled = True'////////删除变亮
End If

End Sub

Private Sub Command6_Click()'///////////////////修改
   ....'////修改数据库代码略
   MSFlexGrid1.TextMatrix(m, 1) = Trim(Text1.Text)
   MSFlexGrid1.TextMatrix(m, 2) = Trim(Text2.Text)
   MSFlexGrid1.Refresh
End Sub
Private Sub Command7_Click()'///////////////////删除
   ....'////删除数据库代码略
   If MSFlexGrid1.row = MSFlexGrid1.rows - 1 Then
         MSFlexGrid1.rows = MSFlexGrid1.rows - 1
        Else
         DelGrid MSFlexGrid1
         MSFlexGrid1.rows = MSFlexGrid1.rows - 1
         MSFlexGrid1.Refresh
      End If
End Sub

Dim Sub DelGrid(strGrid As MSFlexGrid)'//////////一个删除网格的公用过程
   Dim nero()
   Dim ai As Integer
   Dim xi As Integer
   Dim yi As Integer
   Dim zi As Integer
   xi = strGrid.cols - 1
   ReDim nero(xi)

   For ai = strGrid.row + 1 To strGrid.rows - 1
       strGrid.row = ai
       For yi = 0 To strGrid.cols - 1
         strGrid.col = yi
         nero(yi) = strGrid
       Next
       strGrid.row = ai - 1
       For zi = 0 To strGrid.cols - 1
        strGrid.col = zi
        strGrid = nero(zi)
       Next
   Next


End Sub


#13



1、删除选中的一行,我有一个另类的方法,就是将该行的行高设定为0,这样给用户的感觉是该行删除了,如果想撤销,恢复该行的行高就行了,退出保存数据的时候判断如果某一行的行高为0,就将改行数据从数据库中删除,具体代码要看你的数据库操作方式

2、修改选中的一行可以有两种方法
 a、用一个textbox控件,鼠标点哪一格就将text移动(move)到哪一格,并将值赋给textbox,当鼠标移开的时候,将修改后的textbox的值再赋给原来的格,具体代码就不用罗嗦了

 b、打开一个新窗体,将一行上的所有内容都用textbox显示在窗体上供用户修改,保存时候将tetxbox的值赋给对应的格即可