access分页 技术 思想 a: 程序代码 select top 分页数 * from 表 where 主键 not in (select top 第几页*分页数 主键 from 表 where 过滤条件) access分页 技术 思想 b: 程序代码 select top 页大小 * from 表1 where 主键 (select min(主键) from (select
        					access分页技术思想a:
程序代码
select top 分页数 * from 表 where 主键 not in (select top 第几页*分页数 主键 from 表 where 过滤条件)
access分页技术思想b:
程序代码
select top 页大小 * from 表1 where 主键    
相比这两种设计思想,就大容量的数据而言,譬如一表几万条数据的显示的时候,就能明显的感觉出,前者比后者快了,因为前者不用建立后台临时表处理!,少了一个环节!不过简单的说,还是很容易理解的
打个比方,我一页要五行数据,现在是第三页,那么第几页应该等于需要要的页数乘以记录!
一个基于此思路的分页函数应用:
程序代码
function showclass(page, fcount, order, desc)    
    if page =  or len(page) = 0 then page = 1
skinstr =    
     pagestr =    
     skintatol = conn.execute(select count(*) from skin)(0)
filtwheres = order by &order &desc
if page > 1 then    
         skinsql = select top & fcount  skin_id,skin_name,skin_designer,skin_pubdate,skin_designerurl,skin_designermail,skin_geterip,skin_gettime,localskininfopreview,skin_randromnumber,skin_downcouns,skin_fromurl from skin where skin_id not in (select top & ((page -1)* fcount) skin_id from skin &filtwheres)  & filtwheres    
     else    
        skinsql = select top & fcount  skin_id,skin_name,skin_designer,skin_pubdate,skin_designerurl,skin_designermail,skin_geterip,skin_gettime,localskininfopreview,skin_randromnumber,skin_downcouns,skin_fromurl from skin  & filtwheres    
     end if
'------------------ www.knowsky.com 分页栏 ---------------------    
            total = skintatol '取总数    
            per = fcount '每页显示条数    
            pages = total / per '总共的页数
if pages  int(pages) then    
                pages = int(pages) + 1    
            else   
                pages = pages    
            end if
if (page * per) >= total then    
                bn = total    
            else   
                bn = page * per    
            end if
if pages                 if page > 5 then    
                    a = page - 4    
                    b = page + 4    
                    if b > pages then b = pages    
                else    
                    a = 1    
                    b = pages    
                end if    
            else    
                if page > 5 then    
                    a = page - 4    
                    b = page + 4    
                    if b > pages then b = pages    
                else    
                    a = 1    
                    b = 9    
                end if    
            end if
'------------- start --------------------    
            pagestr = pagestr &
pagestr = pagestr &
for i = a to b    
                if page = i then    
                    pagestr = pagestr &  & i &     
                else    
                    pagestr = pagestr &  & i &     
                end if    
            next
pagestr = pagestr & >    
            pagestr = pagestr &
'------------- end --------------------
set skindb = conn.execute(skinsql)    
            if skindb.bof or skindb.eof then    
                skinstr = skinstr & none   
            else    
                web_len = 1    
                skinstr = skinstr &    
                do while not skindb.eof    
                    if web_len mod 4 = 0 then     
                        bleft =    
                        bright =    
                    elseif web_len mod 4 = 1 then    
                        bleft =    
                        bright =    
                    else    
                        bleft =    
                        bright =    
                    end if    
                        skinstr = skinstr & bleft & 
&skindb(skin_name)
  & bright    
                    web_len = web_len + 1    
                skindb.movenext    
                loop    
                skinstr = skinstr &
end if     
            showclass = pagestr & skinstr     
end function
%>
   
 
   