For i = 0 To DataGrid1.ApproxCount - 1
          DataGrid1.Row = i
           For j = 0 To DataGrid1.Columns.Count - 1
                rs.AddNew
              rs.Fields(j).Value = DataGrid1.Columns(j).Value
             Next j
           rs.Update
       Next i
报多步操作产生错误,请检查每一步的状态值
按下调试显示问题出在 rs.Fields(j).Value = DataGrid1.Columns(j).Value

解决方案 »

  1.   

    http://download.csdn.net/source/1498324
      

  2.   

    '这样试试:
    For i = 0 To DataGrid1.ApproxCount - 1 
        DataGrid1.Row = i 
        rs.AddNew 
        For j = 0 To DataGrid1.Columns.Count - 1 
            rs.Fields(j).Value = DataGrid1.Columns(j).Value 
        Next j 
        rs.Update 
    Next i 
      

  3.   

    是不是datagrid各列值的类型与rs中的不一致,请仔细检查一下
      

  4.   


    DataGrid 不像 FlexGrid 那样 Flex,一般不这样用。DataGrid 绑定的记录集是什么?你可以通过记录直接对另外一个记录集赋值。如果纯粹作输入用,要么启用 DataGrid 的添加和更新自动化,要么就用 GlexGrig + 嵌入编辑控件。
      

  5.   

    For i = 0 To DataGrid1.ApproxCount - 1
        DataGrid1.Row = i
        rs.AddNew
        
        For j = 0 To DataGrid1.Columns.Count - 1
            DataGrid1.Col = j
            rs.Fields(j) = DataGrid1.Text
        Next j
        
        rs.Update
    Next i
      

  6.   

    DataGrid1.Columns(j).Value 
    ************************
    这个应该是列吧?貌似应该用单元格
      

  7.   

    我把我的具体问题说一下
    Private Sub DataGrid1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
            If rs.AbsolutePosition < rs.RecordCount Then 
            rs.MoveNext                            
             Else
              rs.AddNew                                
               End If
      Else
         Exit Sub
       End If
    窗口初始化是
    sql="select * from setting where 1>1"
     rs.open,cn,2,4
    set datagrid1.DataSource = rs
    然后按下窗口上的新增按钮,按下回车的时候就自己新增一行空白行()
    当我运行上面的代码不但会报错而且datagrid会自动新增多两行空白的
      

  8.   


    For i = 0 To DataGrid1.ApproxCount - 1 
              DataGrid1.Row = i 
              For j = 0 To DataGrid1.Columns.Count - 1 
    这两个红字部分是出错原因.
    因为datagrid没有行统计和列统计,它的行要根据绑定的数据源的总记录数-1算出,它的列等于记录的字段数.
    ApproxCount 属性返回在网格中的行号的近似值,并不是精确总记录数.
    Count 属性返回集合中对象的数目,也不是精确的总字段数.参见我回的另一个贴子:
    http://topic.csdn.net/u/20090825/22/9fb7ed29-2e7a-44f4-aee4-6e45617b1959.html
      

  9.   


    For i = 0 To DataGrid1.ApproxCount - 1 
              DataGrid1.Row = i 
              For j = 0 To DataGrid1.Columns.Count - 1 
    这两个红字部分是出错原因.
    因为datagrid没有行统计和列统计,它的行要根据绑定的数据源的总记录数-1算出,它的列等于记录的字段数.
    ApproxCount 属性返回在网格中的行号的近似值,并不是精确总记录数.
    Count 属性返回集合中对象的数目,也不是精确的总字段数.参见我回的另一个贴子:
    http://topic.csdn.net/u/20090825/22/9fb7ed29-2e7a-44f4-aee4-6e45617b1959.html