在往Sql server2000中新增记录时,用以下语句:
rs.addnew
rs.fields("productname")=txtcontent(0)
rs.fields("productkey")=rs.fields("ID")
'ID字段是表示列,自动增加
rs.update发现rs.fields("productkey")=rs.fields("ID")此处赋值不成功。如何才能成功赋值(将本条记录的ID字段赋给productkey字段)?

解决方案 »

  1.   

    自动增加的字段要更新后才能取得,要不然先取得最后一条的记录:如
    dim idkey as long
    rs.movelast
    idkey=rs.fields("id")
    rs.addnew
    rs.fields("productkey")=idkey+1
      

  2.   

    rs.addnew
    rs.fields("productname")=txtcontent(0)
    rs.fields("productkey")=rs.fields("ID")
    'ID字段是表示列,自动增加
    rs.update之所以不成功是因为addnew时数据库并没有增加记录,当Update时才写入数据库
    所以addnew时rs.fields("ID")值不存在,所以赋值不成功你可以addnew,之后Update
    然后查询出这条记录,然后在赋值update道理和qingming81(晴明) 的一样,只是不再加1了
      

  3.   

    同意 SoHo_Andy(冰) ( ) 的说法,
    如果qingming81(晴明) ( ) 的说法在多机使用时就有可能出错。dim idkey as long
    rs.movelast
    idkey=rs.fields("id")
    之后,本机
    rs.fields("productname")=txtcontent(0)
    rs.fields("productkey")=rs.fields("ID")
    'ID字段是表示列,自动增加
    rs.update
    之前
    有别的机子写入数据,这时IDKEY就不是最后一条了
      

  4.   

    可是调试的时候每次都发现rs.fields("ID")都是有值的,可是为什么不能赋值?何解?何解?
      

  5.   

    qingming81(晴明) 和 lmhgd(小菜)的办法是不可取的,因为如果在添加前删除过一条记录,那么最近添加的ID和前一条就不是相连的。
    update之前,数据是会写入表中的,但如果只AddNew,不进行Update,那么这条数据会被放弃的。
      

  6.   

    那如何如何取得本条新增记录的ID字段值(ID字段为自动标识、自动递增)???