Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
CN.CursorLocation = adUseClient
   CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path   & "\xx.mdb"
   RS.Open "select * from xsxx order by xh", CN, adOpenStatic, adLockBatchOptimistic
   
   RS.AddNew
   RS.Update
   
   Set DataGrid1.DataSource = RS
   DataGrid1.Refresh
   
   RS.Close
   CN.Close从datagrid中添加记录,可不成功,高手帮忙看一下!

解决方案 »

  1.   

    RS.Open "select * from xsxx order by xh", CN, adOpenKeyset, adLockBatchOptimistic
      

  2.   


    游标设置错误AdOpenForwardOnly 仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能。 AdOpenKeyset 键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。 AdOpenDynamic 动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。 AdOpenStatic 静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。 
      

  3.   

    在RS里是不是有不允许NULL的字段.如果是,则在该记录添加一个有实际意义的数字.
    例如:
       RS.AddNew
       RS.Fields("id") = "002"
       RS.Fields("name") = "asdf"
       RS.Update
      

  4.   

    我是想直接通过datagrid添加数据的
    不允许为空的我都填上了呀