回 帖 发 新 帖 刷新版面

主题:排序中的跳格问题....

数据表中有一个字段order用来设定排序关键字,假如设定的序号为:1、2、3、5、6....(注意中是没有4)。
在页面输出时我懂得让它按一定的顺序显示。但现在我想让它自动检测序号,如果没有这个序号如上面说的没有序号为“4”的这条记录,在输出时让它自动留一个空位(如单元格),即跳过一格才继续显示后面的。
请大侠不赐教!

回复列表 (共8个回复)

沙发

i=1
do while nor rs.eof
 if rs("order")=i then
 '输出记录
 else
 '输出空行
 end if
 i=i+1
loop

板凳

1楼的回答是不行的。这样的话,前面1、2、3条记录可以正常输出,到从第四条开始,后面都是输出空行。
因为从第4条记录开始,变量i的值是4,而此时order的值是因为没有4所以轮到是5,order<>i,所以会输出空行。再进入下一个循环:变量i的值是5,而此时order的值是6,所以依然会输出空行....依此类推...

3 楼

[quote]i=1
do while nor rs.eof
 if rs("order")=i then
 '输出记录
 else
 '输出空行
 end if
 i=i+1
loop[/quote]
如果数据库里的记录到第4条是一条空值的记录,这样是行的。但我的数据库里不许有这样一条空值记录来占位置。

4 楼

i=1
Do While Not rs.eof
 While i<=rs("order")
  If i=rs("order") then
   '输出记录
  Else
   '输出空行
  End if
  i=i+1
 wend
rs.movenext
loop
再试试

5 楼

for i="第一个编号" to 最后一个编号
  if Rs("数据编号")<>i then
    输出空格
  else
    输出数据
    Rs.movenext
  end if
next

6 楼

谢谢4楼的回答,满分送上。这个方案正合我意。但是在这个基础上,如果我要随时停止循环呢该怎么做。比如说我有10条记录,按上面要求让它输出5行内容(空格与记录)后,后面的不再输出。我是新手,弄不明白它与for...next语句的嵌套使用.....

5楼的方案显然是不行(不符合我要的功能)的,我也不必去测试了。不过也送上10感谢啦。[em2]

7 楼

i=1
Do While Not rs.eof
if i>5 then
exit do
end if
 While i<=rs("order")
  If i=rs("order") then
   '输出记录
  Else
   '输出空行
  End if
  i=i+1
 wend
rs.movenext
loop

8 楼


明白了,非常感谢7楼赐教!满分送上
感觉来这里能学到很多东西.....

我来回复

您尚未登录,请登录后再回复。点此登录或注册