主题:排序中的跳格问题....
awen2008
[专家分:30] 发布于 2007-04-28 20:57:00
数据表中有一个字段order用来设定排序关键字,假如设定的序号为:1、2、3、5、6....(注意中是没有4)。
在页面输出时我懂得让它按一定的顺序显示。但现在我想让它自动检测序号,如果没有这个序号如上面说的没有序号为“4”的这条记录,在输出时让它自动留一个空位(如单元格),即跳过一格才继续显示后面的。
请大侠不赐教!
回复列表 (共8个回复)
沙发
wangsdong [专家分:21390] 发布于 2007-04-28 21:41:00
i=1
do while nor rs.eof
if rs("order")=i then
'输出记录
else
'输出空行
end if
i=i+1
loop
板凳
awen2008 [专家分:30] 发布于 2007-04-28 23:46:00
1楼的回答是不行的。这样的话,前面1、2、3条记录可以正常输出,到从第四条开始,后面都是输出空行。
因为从第4条记录开始,变量i的值是4,而此时order的值是因为没有4所以轮到是5,order<>i,所以会输出空行。再进入下一个循环:变量i的值是5,而此时order的值是6,所以依然会输出空行....依此类推...
3 楼
awen2008 [专家分:30] 发布于 2007-04-28 23:58:00
[quote]i=1
do while nor rs.eof
if rs("order")=i then
'输出记录
else
'输出空行
end if
i=i+1
loop[/quote]
如果数据库里的记录到第4条是一条空值的记录,这样是行的。但我的数据库里不许有这样一条空值记录来占位置。
4 楼
wangsdong [专家分:21390] 发布于 2007-04-29 09:17:00
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 楼
liulei001 [专家分:12820] 发布于 2007-04-29 10:55:00
for i="第一个编号" to 最后一个编号
if Rs("数据编号")<>i then
输出空格
else
输出数据
Rs.movenext
end if
next
6 楼
awen2008 [专家分:30] 发布于 2007-05-07 14:58:00
谢谢4楼的回答,满分送上。这个方案正合我意。但是在这个基础上,如果我要随时停止循环呢该怎么做。比如说我有10条记录,按上面要求让它输出5行内容(空格与记录)后,后面的不再输出。我是新手,弄不明白它与for...next语句的嵌套使用.....
5楼的方案显然是不行(不符合我要的功能)的,我也不必去测试了。不过也送上10感谢啦。[em2]
7 楼
oyh484203 [专家分:5890] 发布于 2007-05-07 16:26:00
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 楼
awen2008 [专家分:30] 发布于 2007-05-08 18:57:00
明白了,非常感谢7楼赐教!满分送上
感觉来这里能学到很多东西.....
我来回复