A字段 B字段  C字段 D字段
6658 0:59
6649 1:01
0
6642 1:05
6625 1:07
0
197 1:12
185 1:15
174 1:18
159 1:20
我想读取记录0的上一条记录和下一条记录,然后把它们写到字段C和字段D 怎么做啊?

解决方案 »

  1.   

    这是个表, 把ABCD字段当作ID, 0是我作的一个标记,因为我要用到的数据,是0上边的一条和下边的一条
      

  2.   

    select * from tabledim str1,str2 as string
    do while not rst.eof
       str1 =rst("字段A")
       str2 = rst("字段B")
       rst.movenext
       if rst("字段A")=0 then 
          '将str1,str2 的值赋给c,d字段
           rst.movenext
           str1 =rst("字段A")
           str2 .= rst("字段B")
           '取出标记为0的下一条记录
           '将str1,str2 的值赋给c,d字段
       else
          rst.movenext
       endif
    loop但是这样恐怕不能处理连续出现两个0的情况啊
    供参考吧
      

  3.   

    做连续多个0 的时候可以这样处理.但是我不知道你的思路是怎么样的.
    如果连续的0被看作单个0来处理的话,也就是这行字段为0 那么不管上面一个记录和下一个记录是不是0 都保存到c,d字段
    还有一种就是连续多个0被看作一个0来处理,也就是将这n个0 的上一条记录和n个0 的下一条记录存储到c,d字段
    第一种情况处理办法如上代码
    第二种情况处理办法如下:
    select * from tabledim str1,str2 as string
    do while not rst.eof
       str1 =rst("字段A")
       str2 = rst("字段B")  do while str1<> 0 
          rst.movenext
          str1 =rst("字段A")
          str2 = rst("字段B")      
      loop
          rst.movenext
       if rst("字段A")=0 then 
          '将str1,str2 的值赋给c,d字段
          ..........       rst.movenext
           do while rst("字段A")<>0
                rst.movenext
           loop
           str1 =rst("字段A")
           str2 .= rst("字段B")
           '取出标记为0的下一条记录
           '将str1,str2 的值赋给c,d字段
           ..........
       else
          rst.movenext
       endif
    loop