写了一个ASP数据库的分页函数。
 

<%
 ' @ sDesURL 链接地址,可以是一个文件名,也可以是一个有一些参数的URL
 ' @ nTotalNumber 总数量
 ' @ nMaxPerPage 每页数量
 ' @ nCurrentPage 当前页
 ' @ bShowTotal 是否显示总数量
 ' @ bShowCombo 是否用下拉列表显示所有页面以供跳转
 ' @ sUnit 计数单位
 sub Page(sDesURL,nTotalNumber,nMaxPerPage,nCurrentPage,bShowTotal,bShowCombo,sUnit)
  dim n,i,strTemp,strUrl
  
  '计算页数
  if nTotalNumber mod nMaxPerPage =0 then
   n = nTotalNumber \ nMaxPerPage
  else
   n = nTotalNumber \ nMaxPerPage + 1
  end if
  
  
  response.Write("
")
  if bShowTotal = true then
   response.Write("共 "&nTotalNumber&""&sUnit&"记录  ")
  end if
  
  '根据输入的sDesURL向它加入?或&
  strUrl = pasteURL(sDesURL)
  if nCurrentPage < 2 then
   response.Write("首页  上一页  ")
  else
   response.Write("首页  ")
   response.Write("上一页  ")
  end if
  
  if n-nCurrentPage < 1 then
   response.Write("下一页  尾页")
  else
   response.Write("下一页  ")
   response.Write("尾页")
  end if
  
  response.Write("  页次:"&nCurrentPage&"/"&n&"页 ")
  response.Write(""&nMaxPerPage&""&sUnit&"/页")
  if bShowCombo = true then
   response.Write("  转到 : ")
  end if
  response.Write("
")
 end sub
 
 function PasteURL(strUrl)
  if strUrl = "" then
   PasteURL = ""
   exit function
  end if
  
  '如果传入的URL末尾不是"?",有两种情况:
  '1.无"?",此时需加入一个"?"
  '2.有"?",再判断有误"&"
  if InStr(strUrl,"?") < len(strUrl) then
   if InStr(sttrUrl,"?") > 1 then
    if InStr(strUrl,"&") < len(strUrl) then
     PasteURL = strUrl&"&"
    else
     PasteURL = strUrl
    end if
   else
    PasteURL = strUrl&"?"
   end if
  else
   PasteURL = strUrl
  end if
 end function
%>
 
通过一个实例来看看使用方法。
 
'conn.asp文件如下
<%
 Dim conn,url
 set conn = server.CreateObject("adodb.connection")
 url = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/FY/data.mdb")
 conn.open = url
%>
'连接数据库data.mdb,有web表,ly字段
 
'fy.asp内容如下
< %@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>






测试


<%
 dim sql
 dim rs
 set rs = server.CreateObject("adodb.recordset")
 sql="select * from web"
 rs.open sql,conn,3,2

 '设置每页数据数量
 rs.pagesize = 5

 '判断当前处于哪页
 if request("page")<>"" then
    epage=cint(request("page"))
     if epage<1 then epage=1 end if
     if epage>rs.pagecount then epage=rs.pagecount end if
 else
  epage=1
 end if
  
 rs.absolutepage=epage
  
 for i = 0 to rs.pagesize - 1
  response.Write("
"&rs("ly")&"

")
  rs.movenext
 next
 
 Page "new_fy.asp",rs.recordcount,5,epage,true,true,"条"
%>