asp+access系统中怎么分页?

 我来答
SQL的艺术
推荐于2016-02-27 · SQL写多了就会在追求极致
SQL的艺术
采纳数:2040 获赞数:3324

向TA提问 私信TA
展开全部

代码如下:

<%
'创建数据库连接对象
set conn=server.createobject("adodb.connection")
'打开数据库,如果数据库没有密码 可以省略
conn.open("DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;pwd=;dbq="&server.mappath("MyMDB.mdb"))
'创建结果集对象
set rs=server.createobject("adodb.recordset") 
strsql="select * from table" '设置sql 查询语句 
rs.open strsql,conn,1,1  ‘使用结果集RS执行strsql语句
%>

然后是分页属性的设置 

<% 
rs.PageSize=3 ‘设置页码 
pagecount=rs.PageCount '获取总页码 
page=int(request("page")) '接收页码 
if page<=0 then page=1 '判断 
if request("page")="" then page=1 
rs.AbsolutePage=page '设置本页页码 
%>

再然后是body里的分页显示 

<% 
if rs.bof and rs.eof then 
    response.write("NULL") 
else 
    for i=1 to rs.PageSize 
        response.write rs("name") 
        response.write("<hr>") 
        rs.movenext 
    next 
end if 
%>

最后是显示分页控制按钮

<%if page=1 and not page=pagecount then%> 
    首页|前一页| <a href="log1.asp?page=<%=page+1%>">后一页</a>| <a href="log1.asp?page=<%=pagecount%>">末页</a> 
<%elseif page<>1 and not page=pagcount then%> 
    <a href="log1.asp?page=1">首页</a>| <a href="log1.asp?page=<%=page-1%>">前一页</a>| <a href="log1.asp?page=<%=page+1%>">后一页</a>| <a href="log1.asp?page=<%=pagecount%>">末页</a> 
<%elseif page=pagecount then%> 
    <a href="log1.asp?page=1">首页</a>| <a href="log1.asp?page=<%=page-1%>">前一页</a>| 下一页| 末页 
<%end if%>

其中:

rs.pagesize:记录的条数

rs.recordcount:记录总数
rs.pagecount:总页数

rs.AbsolutePage=Page 这个是设置当前页

以上都是关键点,一定记清楚。

小提示:MyMDB.mdb 为数据库 table1表名 rs(1).name等等之类的是取记录集中的值 这些都可以自由更改,需要参照实际情况,其余的都可以直接复制 把注释删掉就ok。

金陵五洲雨花石
2006-09-11 · 交流雨花石鹅卵石资讯
金陵五洲雨花石
采纳数:1215 获赞数:5924

向TA提问 私信TA
展开全部
1.原理:ASP分页其实是将数据库中的记录分割成若干段“分屏显示”
,为什么叫“分屏显示”显示,因为其实显示的原始页面只有1页,通过控制数据库显示,来刷新页面的显示内容(可能一些朋友会误会为动态产生若干页面来显示,呵呵,我刚刚学的时候也是这样以为的)
2.用到的几个函数
rs.pagesize--->定义一页显示记录的条数
rs.recordcount--->统计记录总数
rs.pagecount---->统计总页数
这几个函数相信大家都很快就明白意识了,不过还有一个函数它的用法可能理解起来难一点
rs.absolutepage--->将数据库指针移动到当前页要显示的数据记录的第一条记录,比如有20条记录的一个数据库,我们分为10条记录显示一页,当你的页面为2时,通过使用rs.absolutepage将指针移动到第11条记录处,依次类推....
3.大家明白原理后我们开始来看一段分页的程序,其中的一些文件我就不一一详细讲解了,不明白的朋友可以先看

http://www.2yup.com/asp/forum/branch.asp?pid=55084&pn=5
--------------------------------------------------
<!--#include file=conn1.asp-->
<%
dim m,n
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from message order by time desc"
rs.open sqlstr,conn,3,3
rs.pagesize=10 '定义一页显示的记录数目
tatalrecord=rs.recordcount '获取记录总数目
tatalpages=rs.pagecount '获取分页的数目
rs.movefirst
----------------------------
nowpage=request("page") '用request获取当前页数,注意page是自己定义的变量并非函数
--------------------------
if nowpage&"x"="x" then '处理页码为空时的情况
nowpage=1
else
nowpage=cint(nowpage) '将页码转换成数字型
end if
--------------------------------
rs.absolutepage=nowpage '将指针移动到当前显示页的第一条记录
-------------------------------
%>
---------------------------------------------
<%
n=1
while not rs.eof and n<=rs.pagesize
response.Write(rs("user") & "<br>")
response.Write(rs("tt") & "<br>")
n=n+1
rs.movenext '显示页面的数据
wend
%>
-------------------------------------------
共:<%=tatalpages%>页 当前为:<%=nowpage%>页
<%if nowpage>1 then%>
<a href="fy.asp?page=<%=nowpage-1%>">上一页</a>
<%else%>
上一页
<%end if%>
<%for k=1 to tatalpages%>
<%if k<>nowpage then %>
<a href="fy.asp?page=<%=k%>"><%=k%></a>
<%else%>
<%=k%>
<%end if%>
<%next%>
<%if nowpage < tatalpages then%>
<a href="fy.asp?page=<%=nowpage+1%>">下一页</a>
<%else%>
下一页
<%end if%> '加上页码连接
<%if nowpage<>1 then%>
<a href="fy.asp?page=<%=1%>"> 首页</a>
<%else%>
首页
<%end if%>
<%if nowpage<>tatalpages then %>
<a href="fy.asp?page=<%=tatalpages%>">末页</a>
<%else%>
末页
<%end if%>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinazoya
2006-09-11 · TA获得超过103个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:0
展开全部
假定你已经将一个表读入了一个记录集dbrs,在ASP中如何对这个dbrs进行分页显示呢?

其实就是学习使用dbrs的几个参数
1. dbrs.pagesize '每页的记录数
2. dbrs.absolutepage '当前页面指到第几页
3. dbrs.pagecount '记录集总页数,这个值不能显式指定,服务器根据pagesize的记录总数计算出来总页数
教程作者:http://www.web745.com

if dbrs.recordcount<>0 then
dbrs.pagesize=15
if request("pageno")="" then
pageno=1
else
pageno=cint(request("pageno"))
end if
dbrs.absolutepage=pageno

for i=1 to dbrs.pagesize
'这个地方显示你的数据,你想怎么显示就怎么显示
dbrs.movenext
if dbrs.eof then exit for
next
end if

‘以上达到了显示的效果,可以看到要接收一个叫pageno的参数
那么就想办法把这个参数传给当前页面,就能实现分页了

if pageno<>1 then '如果现在不是在第一页,那么就使“上一页”的链接可点击
pageno=cint(pageno)
response.write "<a href='##当前页面名称?pageno="&pageno-1&">"
response.write "上一页"
response.write "</a>"
else '否则只显示不带链接的上一页
response.write "上一页"
end if

'################同样,可这样做下一页的链接

if pageno<>dbrs.pagecount then '如果现在不是在最后一页,那么就使“下一页”的链接可点击
pageno=cint(pageno)
response.write "<a href='##当前页面名称?pageno="&pageno+1&">"
response.write "下一页"
response.write "</a>"
else '否则只显示不带链接的上一页
response.write "下一页"
end if

这样就完成了简单的分页,ASP初学者可能觉得分页很烦

有什么问题可以加我QQ:88235786
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式