我现在想把堆位中的序号按倒序重新编号,请问怎么写?请赐教!  
Set  rec1  =  CreateObject("adodb.recordset")  
Set  conn1  =  CreateObject("adodb.connection")  
strcon1  =  "driver={SQL  Server};server=webserver;uid=hcgs;pwd=6116375;database=hc"  
conn1.Open  strcon1  
strsql1  =  "select  *  from  堆码单  where  堆位='"  &  Trim(Combo1.Text)  &  "'  order  by  序号  desc"  
If  rec1.EOF  Then  
MsgBox  ("该堆位无数据,请重新输入或选择堆位!")  
Exit  Sub  
Else  
......下面该怎么写哦??

解决方案 »

  1.   

    Set  rec1  =  CreateObject("adodb.recordset")  
    Set  conn1  =  CreateObject("adodb.connection")  
    strcon1  =  "driver={SQL  Server};server=webserver;uid=hcgs;pwd=6116375;database=hc"  
    conn1.Open  strcon1  
    strsql1  =  "select  *  from  堆码单  where  堆位='"  &  Trim(Combo1.Text)  &  "'  order  by  序号  desc"  
    If  rec1.EOF  Then  
    MsgBox  ("该堆位无数据,请重新输入或选择堆位!")  
    Exit  Sub  
    Else  
        Max=rec1.field("序号" )
        while not rec1.eof
               rec1.field("序号")=  Max-rec1.field("序号")+1 '如果是从1开始编号的话
               rec1.movenext
        wend
        rec1.update
    end if
      

  2.   

    dim rs as new adodb.recordset
    set rs=new adodb.recordsetrs.open "select * from [biao]",conn,1,3  for i= rs.RecordCount to 1 step -1
          rs!序号=i
          rs.UPDATE
         If Not rs.EOF() Then rs.MoveNext
      next
    set rs=nothing
      

  3.   

    Set  rec1  =  CreateObject("adodb.recordset")  
    Set  conn1  =  CreateObject("adodb.connection")  
    strcon1  =  "driver={SQL  Server};server=webserver;uid=hcgs;pwd=6116375;database=hc"  
    conn1.Open  strcon1  
    strsql1  =  "select  *  from  堆码单  where  堆位='"  &  Trim(Combo1.Text)  &  "'  order  by  序号  desc"  
    If  rec1.EOF  Then  
    MsgBox  ("该堆位无数据,请重新输入或选择堆位!")  
    Exit  Sub  
    Else  
       i=1   'i是你编号的开始
        while not rec1.eof
               rec1.field("序号")=  i'如果是从1开始编号的话
               i=i+1   '确定你的步长
               rec1.movenext
        wend
        rec1.update
    end if
      

  4.   

    Else  
    rec1.movelast    while not rec1.bof
               rec1.field("序号")=  Max-rec1.field("序号")+1 '如果是从1开始编号的话
               rec1.movepriview
        wend
        rec1.update
    end if
      

  5.   

    i=1   'i是你编号的开始
        while not rec1.eof
               rec1.field("序号")=  i'如果是从1开始编号的话
               i=i+1   '确定你的步长
               rec1.movenext
        wend
        rec1.update
    ---这样的写法恐怕有问题吧,因为当前正在进行select查询,同时又修改,结果肯定update不了!你们也不经常写数据库程序吧??
      

  6.   

    i=1   'i是你编号的开始
        while not rec1.eof
               rec1.field("序号")=  i'如果是从1开始编号的话
               i=i+1   '确定你的步长
        rec1.update       
    rec1.movenext
    wend
    刚才是在楼上那位的基础上改的,如果我自己写就这样写了,这样就没有错了,呵呵,你是说这样的情况么?
      

  7.   

    真的不行!不管你update放在前还是后,都提示“recordset不支持更新!这可能是提供者限制的,也可能是选定的锁定类型限制的”
    跟我当初想的是一样的,在select查询时怎么可能同时进行更新啊,要么除非创建一个recordset 
    rec2,用它来edit后update。各位怎么看?
      

  8.   

    dim rc as new adodb.Connection
    dim rs as new adodb.recordset
    dim DO_LinkString  as string
    set rc = new adodb.Connection
    set rs=new adodb.recordset
    ‘jet4.0的连接字符,举个例子(ado2.7)
    DO_LinkString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SourseFilePathName & ";Persist Security Info=False;Jet OLEDB:DataBase Password=zcm"rc.Open ADO_LinkString
    rc.CursorLocation = adUseClient
    rs.open "select * from [biao] order  by  [序号]  desc",conn,1,3if rs.recordcount<>0 then
      for i= rs.RecordCount to 1 step -1
          rs!序号=i
          rs.UPDATE
         If Not rs.EOF() Then rs.MoveNext
      next
    end ifrs.close
    rc.close
    set rc=nothing
    set rs=nothing
      

  9.   

    rec1.open strsql1,conn1,1,3
    同意!!
      

  10.   

    rs!序号=i  要是字符型改成cstr(i)
      

  11.   

    真的只要写成rec1.open strsql1,conn1,1,3就可以了。谢谢各位了,我会把分分给你们的:)能否告诉我为什么是这样写就可以?不加1,3就不可以?请赐教!