我想在程序中点击一个删除按钮来删除DataGrid中选中的一行数据该怎么做呀??

解决方案 »

  1.   

    SelBooks 属性
          返回一个在 DataGrid 控件中所有选定的记录的书签集合。语法object.SelBooksobject 所在处代表对象表达式,其值是“应用于”列表中的对象。说明当一个记录在 DataGrid 控件中被选定的时候,它的书签被追加到 SelBooks 属性所返回的集合中。例如,如果创建 DataGrid 控件所创建的一组 Recordset 对象,则可以用来自 SelBooks 集合的书签将分组的 Recordset 重新定位,以处理单个的数据记录。
      

  2.   

    SelBooks 属性示例
    这个例子在用户已选定的行间循环并将它们从数据库中删除。Sub DeleteRows()
       Dim varBmk As Variant
        For Each varBmk In DataGrid1.SelBooks
            Data1.Recordset.Book = varBmk
            Data1.Recordset.Delete
            Data1.Refresh
        Next
    End Sub
      

  3.   

    Private Sub cmdDelete_Click()
       '--------------------
           If dgLaborTrain.SelBooks.Count = 0 Then
                MsgBox "请选择一条记录以供操作!", vbOKOnly + vbExclamation, "注意!"
                Exit Sub
           End If
      '--------------------------    
        intYesNo = MsgBox("确实要删除这条参数吗?", vbYesNo + vbExclamation, "注意!")
        
        If intYesNo = vbYes Then
           Dim varBmk As Variant
           For Each varBmk In dgLaborTrain.SelBooks
               rsLaborTrain.Book = varBmk
               rsLaborTrain.Delete
           Next
             End Sub
      

  4.   

    Sub DeleteRows()
       Dim varBmk As Variant
        For Each varBmk In DataGrid1.SelBooks
            Data1.Recordset.Book = varBmk
            Data1.Recordset.Delete
            Data1.Refresh
        Next
    End Sub
    我这么做了以后但是当删除第一条时,这条记录依然还在DataGrid控件上显示,当删除第二个时第一条才没有,但是第二条在控件上显示,一次类推,我必须删除第n-1条,删除的第n条才在DataGrid控件上消失
      

  5.   

    Sub DeleteRows()
       Dim varBmk As Variant
        For Each varBmk In DataGrid1.SelBooks
            Data1.Recordset.Book = varBmk
            Data1.Recordset.Delete
            Data1.Refresh
        Nextset DataGrid1.datasource=data1.recordsetEnd Sub
      

  6.   

    没那么麻烦:
    ADODC1.Recordset.Delete
    ADODC1.Refresh当选中DataGrid中的一条记录时,Recordset将定位到那条记录。
      

  7.   

    我说的时当删除一条记录以后库里的记录时删除了,但DataGrid上好像没有刷新,那条被删除的记录依然存在,当在删除一条时,上一条删除的记录才从DataGrid中消失,依此类推。是什么原因??憋了好半天了。