怎么样删除vsflexgrid控件里同时选中多条记录。
vsflexgrid与ADODC控件绑定的!

解决方案 »

  1.   

    '假设第一列显示的是主键ID
        Dim i As Integer
        Dim strFilter As String
        For i = 1 To vfg.SelectedRows
            strFilter = "OR ID=" & vfg.TextMatrix(vfg.SelectedRow(i))
        Next
        Adodc1.Recordset.Filter = Right(strFilter, Len(strFilter) - 2)
        Adodc1.Recordset.Delete adAffectGroup
        Adodc1.Recordset.UpdateBatch
      

  2.   

    vfg.TextMatrix(vfg.SelectedRow(i))编译报错 必选参数。
    不能执行。该如何?谢谢
      

  3.   

    sorry~vfg.TextMatrix(vfg.SelectedRow(i),你的ID所在的列)
      

  4.   

    我已将 vfg.SelecttionMode = FlexSelectionListBox
    为何 vfg.SelectedRows 的值总为0?我已选中多行。
    谢谢.
      

  5.   

    '假设你的vsflexgrid的控件名为VSFlexGrid1
    '删除按纽command的控件名为:Command1
    '数据控件的名称为:Adodc1
    '
    '对应的处理代码如下:Private Sub Command1_Click()
        Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
        
        With VSFlexGrid1
            .GetSelection x1, y1, x2, y2  '得到被选择的行列
            idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值
            For i = x1 To x2
                iFilter = " and id=" & .TextMatrix(i, idCol)
            Next
        End With
        iFilter = Mid(iFilter, 6)
        
        With Adodc1.Recordset
            .Filter = iFilter
            .Delete adAffectGroup
            .UpdateBatch
        End With
    End Sub
      

  6.   

    '假设你的vsflexgrid的控件名为VSFlexGrid1
    '删除按纽command的控件名为:Command1
    '数据控件的名称为:Adodc1
    '
    '对应的处理代码如下:Private Sub Command1_Click()
        Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
        
        With VSFlexGrid1
            .GetSelection x1, y1, x2, y2  '得到被选择的行列
            idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值
            For i = x1 To x2
                iFilter = " and id=" & .TextMatrix(i, idCol)
            Next
        End With
        iFilter = Mid(iFilter, 6)
        
        With Adodc1.Recordset
            .Filter = iFilter
            .Delete adAffectGroup
            .UpdateBatch
        End With
    End Sub
      

  7.   

    '假设你的vsflexgrid的控件名为VSFlexGrid1
    '删除按纽command的控件名为:Command1
    '数据控件的名称为:Adodc1
    '
    '对应的处理代码如下:Private Sub Command1_Click()
        Dim x1&, x2&, y1&, y2&, i&, idCol&, iFilter$
        
        With VSFlexGrid1
            .GetSelection x1, y1, x2, y2  '得到被选择的行列
            idCol = .ColIndex("id") '假设id为你的关键字段,也可以直接赋值
            For i = x1 To x2
                iFilter = " and id=" & .TextMatrix(i, idCol)
            Next
        End With
        iFilter = Mid(iFilter, 6)
        
        With Adodc1.Recordset
            .Filter = iFilter
            .Delete adAffectGroup
            .UpdateBatch
        End With
    End Sub
      

  8.   

    那你干脆用这种方法判断选择的行咯
      For i = 0 to fg.Rows
            If fg.IsSelected(i) Then Debug.Print "Row "; i; " is selected"
        Next
    不过这种判断方法要慢
      

  9.   

    With Adodc1.Recordset
            .Filter = iFilter
            .Delete adAffectGroup
            .UpdateBatch
        End With.Delete adAffectGroup 一句
    运行出现实时错误'3219'
    操作在该内容中不被允许。为何?
      

  10.   

    我的问题已解决。谢谢各位。zjcxc(邹建)50分。yoki 50分。