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
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
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
DataGrid 不像 FlexGrid 那样 Flex,一般不这样用。DataGrid 绑定的记录集是什么?你可以通过记录直接对另外一个记录集赋值。如果纯粹作输入用,要么启用 DataGrid 的添加和更新自动化,要么就用 GlexGrig + 嵌入编辑控件。
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
************************
这个应该是列吧?貌似应该用单元格
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会自动新增多两行空白的
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
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