你先addnew后在对各个字段进行赋值
没有数据你怎么修改数据啊。

解决方案 »

  1.   

    recordset打开的时候,如果记录数大于0,那么默认是第一条记录。
    二你上面的代码打开的时候没有记录,这是时候,.eof(记录集尾部标示)
    .bof记录集头部标示着两个属性都为真,
    记录集是不允许对这两个只读书性赋值操作的,所以报错
    当然,只要有一个为真的后也不能赋值操作Set mcnn = New Connection
      mcnn.CursorLocation = adUseClient
      strDatabase = App.Path + "\cpdb1.mdb"
      mcnn.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" & strDatabase & ";Jet OLEDB:Database Password='';"
        Set mrst = New ADODB.Recordset
        mrst.CursorType = adOpenKeyset
        mrst.LockType = adLockOptimistic
        mrst.Open "baseinfo", mcnn, , , adCmdTable
    ==============================================
        if not mrst.bof then
             mrst.Fields("pointnum") = pointnum.Text  '在此行出错!!!不
        end if
    知为什么!!!!
    这样就不会错了
      

  2.   

    建议你用SQL 的INSERT INTO 在ADO中的记录集在用之前用ADDNEW VB ado的EOF,BOF 报错就是没有记录。
      

  3.   

    完全同意ferrytang(ferry)的看法。
    祂說的不錯。
      

  4.   


    大家都来抢分了不成,既然大家都回答了我就不多说了
    其实这种问题很容易范,写ADO要小心
      

  5.   

    谢谢各位,我一时马虎,把ADDNEW那行给删除了,结果才出了这么大的问题。:D
      

  6.   

    我有一个ADO的中文教程,把EMAIL告诉我,我发给你。:D
      

  7.   

    谢谢hotpig(猪猪) ,我已经发短信息给你了,请快发过来,谢谢。
      

  8.   

    Set mcnn = New Connection
      mcnn.CursorLocation = adUseClient
      strDatabase = App.Path + "\cpdb1.mdb"
      mcnn.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" & strDatabase & ";Jet OLEDB:Database Password='';"
        Set mrst = New ADODB.Recordset
        mrst.CursorType = adOpenKeyset
        mrst.LockType = adLockOptimistic
        mrst.Open "baseinfo", mcnn, , , adCmdTable    '加上以下三句
        if mrst.bof and mrst.eof then
           mrst.addnew
        end if    mrst.Fields("pointnum") = pointnum.Text  
        mrst.Fields("agentnum") = agentnum.Text
        mrst.Fields("mobile") = mobile.Text
        mrst.Fields("agentname") = agent.Text
        mrst.Fields("phone") = phone.Text
        mrst.Fields("mobile") = mobile.Text
        If checkout.Text = "是" Then
            mrst.Fields("checkout") = 1
        Else
            mrst.Fields("checkout") = 0
        End If
        mrst.Update
        mrst.Close