我用DbGrid控件连Data,查出一条记录,代码:
Set Data_Popu.Recordset = DbMain.OpenRecordset(lf_YufuInfoSql(ls_bianhao))
Data_Popu.Recordset.MoveLast已经显示出来我所需要的一条记录
现在我要在里面再手工建一条记录,写的代码是
With Data_Popu.Recordset
    .AddNew
    .Fields("Name").Value = "zl"
    .Update
End With
但跟踪以后,在.AddNew
这行出错,提示:不能更新,数据库或对象为只读。
但我的数据库的只读属性我去掉了,这个没问题
请问为何不能添加第二条记录哪?

解决方案 »

  1.   

    '用以下两个方法事试:
    '用 Data 控件访问有密码的 Access 数据库
    With Data1
         .DatabaseName = [数据库路径及名称]
         .Connect = ";pwd=" + [数据库密码]
         .RecordSource = [查询语句]
         .Refresh
         .AddNew
         .Fields("Name").Value = "zl"
         .Update'    ...
    End With'用 DAO 访问有密码的 Access 数据库
    Dim OpenDB As Database
    Dim Rst As DAO.Recordset
    Set OpenDB = DBEngine.Workspaces(0).OpenDatabase([数据库路径及名称], False, False, "MS Access;PWD=" + [数据密码])
    Set Rst = OpenDB.OpenRecordset([查询语句], dbOpenSnapshot)
    '...例如:
    Set Data_Popu.Recordset = DbMain.OpenRecordset(lf_YufuInfoSql(ls_bianhao),dbOpenSnapshot)Data_Popu.Recordset.MoveLastWith Data_Popu.Recordset
        .AddNew
        .Fields("Name").Value = "zl"
        .Update
    End With
      

  2.   

    用sql語句吧
    sql="insert into table(field1,field2....) values(field1,field2....)"
    rs.open sql,conn你想添加多少條記錄,你就插入多少次,而且這種方法比 rs.addnew 好