Office中国论坛/Access中国论坛

标题: 求教报表字段跳过空值(或0值)排列问题(已解决) [打印本页]

作者: GAOZHONG    时间: 2011-4-7 14:56
标题: 求教报表字段跳过空值(或0值)排列问题(已解决)
本帖最后由 GAOZHONG 于 2011-4-8 11:48 编辑

我的报表中有三个基于查询的字段数据1,数据2,数据3,一般的时候,ACCESS报表自动按数据1,数据2,数据3,数据1,数据2......的顺序显示,我希望在报表预览或打印的时候实现:当数据2或数据3的值为0或空时,跳过这个0或空值,把下一个数据提前一个数据位。例:1,3,4,3,5,2,2,3,0,1,0,3是不处理前预览到的数据,现在我要实现:1,3,4,3,5,2,2,3,1,3,该用什么方法?先谢了。
作者: roych    时间: 2011-4-7 17:52
设置条件不等于0(或者大于0)做联合查询,然后基于此数据做报表试试看?
作者: roych    时间: 2011-4-7 17:52
设置条件不等于0(或者大于0)做联合查询,然后基于此数据做报表试试看?
作者: GAOZHONG    时间: 2011-4-7 20:44
用联合查询似乎有一个问题,数据的排列变成数据1,数据1,....数据2,数据2,....数据3,...,但我想要的是,数据1,数据2,数据1(数据3=0或空),数据1,数据1(数据2,数据3都无数据),数据3.....以此类推。例:
数据1       数据2       数据3
  5               4
  7
  9
  6                                8
我要实现的排列是:5,4,7,9,6,8
用联合查询得到的应该是:5,7,9,6,4,8。
还是很真诚的感谢你!
作者: todaynew    时间: 2011-4-8 09:43
本帖最后由 todaynew 于 2011-4-8 09:44 编辑

function vallist() as string
dim rs as new adodb.recordset
dim i as long,j as long
rs.Open "你的数据表名称", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
for i=1 to rs.recordcount
      fro j=0 to rs.fileds.count-1
           if rs.filds(j).name="数据1" or rs.filds(j).name="数据2" or rs.filds(j).name="数据3"  then
                if nz(rs.filds(j).value,0)<>0 then
                      vallist=vallist & rs.filds(j).value & ";"
                end if
          end if
     next
    rs.movenext
next
end function

作者: kingdog    时间: 2011-4-14 19:32
版主真是高人啊




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3