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

解决方案 »

  1.   

    '假设你的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
      

  2.   

    难道以下方法会没有用??'假设第一列显示的是主键ID
        Dim i As Integer
        Dim strFilter As String
        For i = 0 To vfg.SelectedRows-1
            strFilter = "OR ID=" & vfg.TextMatrix(vfg.SelectedRow(i))
        Next
    如果不行,for循环就改成下面的
        'For i = 0 To vfg.Rows
        '    if vfg.IsSelected(i) then strFilter = "OR ID=" & vfg.TextMatrix(vfg.SelectedRow(i))
        'Next
        Adodc1.Recordset.Filter = Right(strFilter, Len(strFilter) - 2)
        Adodc1.Recordset.Delete adAffectGroup
        Adodc1.Recordset.UpdateBatch
      

  3.   

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