我没用adc控件和datagrid连,而是用ado的recordset
rsdatagrid和datagrid连
是不是用rsdatagrid.delete不能把数据库的记录删掉,而是删掉该rsdatagrid记录集的记录?
所以我用sql语句删,但我要知道选的是datagrid哪一行?
请各位大虾指教

解决方案 »

  1.   

    datagrid.row表示datagrid中的当前行
      

  2.   

    Row 属性返回或设置 DataGrid 控件中的活动单元,设计时不可用。语法
    object.Row [= number] Row 属性语法包含下面部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的一个对象。 
    numbe 包含活动单元的列或行的数目。 
    说明
    用这些属性来指定 DataGrid控件中的某一单元,或在选定的区域内查找哪一个行或列含有活动单元。行和列从 0 开始计数,行从顶部开始而列从左边开始计数。运行时设置这些属性不会改变所选的单元。用 SelEndCol、SelStartCol、SelEndRow 和 SelStartRow 属性来指定选择区域。示例:
    private command1_click()
       msgbox "当前选定的行为:" & datagrid1.row
    end sub
      

  3.   

    关于删除:这个例子在用户已选定的行间循环并将它们从数据库中删除。Sub DeleteRows()
       Dim varBmk As Variant
        For Each varBmk In DataGrid1.SelBooks
            Data1.Recordset.Book = varBmk
            Data1.Recordset.Delete
            Data1.Refresh
        Next
    End Sub删除可以用SelBooks 属性:
    返回一个在 DataGrid 控件中所有选定的记录的书签集合。
    语法
    object.SelBooks
    object 所在处代表对象表达式,其值是“应用于”列表中的对象。
    说明
    当一个记录在 DataGrid 控件中被选定的时候,它的书签被追加到 SelBooks 属性所返回的集合中。例如,如果创建 DataGrid 控件所创建的一组 Recordset 对象,则可以用来自 SelBooks 集合的书签将分组的 Recordset 重新定位,以处理单个的数据记录。
      

  4.   

    我的是这样做的,这样只删除光标所在行的记录!
    private sub commdelete_click()
     msg=msgbox("删除吗?请确定!",vbokcancel)
      if msg=vbcancel then
          exit sub
      endif
      rs.delete
      rs.requert
    end sub
      

  5.   

    Adodc1 ---- DataGrid1
    Adodc1.Recordset.AbsolutePosition(DataGrid1.row 返回的只是在DataGrid控件上的第几行;
    如果DataGrid绑定的数据行数超过DataGrid控件所能容纳的行数;
    也就是说把DataGrid控件右边的滚动条向下拉后,DataGrid1.row是不会变大的)
      

  6.   

    其实你可以使用rs.delete进行记录的删除,当前的datagrid中的光标在哪一行,就会自动删除着一行的记录,不过记得rs.cursor=adopendynamic