buscando en el foro encontre el codigo siguiente que permite paginar pero yo necesito que el usuario defina el tamano de registros por pagina y por ello en una variable session se define el numero de registros (por ejemplo 3 registros por pagina), pero sucede que al ejecutar el programa se muestran todos los registos en la primera pagina, luego en la segunda se muestran todos menos tre, y asi sucesivamente ( ej: en la primera muestra del 1 a 10, en la segunda del 4 al 10, en la tercera del 7 al 10)
Que sera lo que anda mal, o como hago para que el usuario defina los registro por pagina?
mil gracias por sus respuestas.

<html>
<head><title>Paginar resultados de consulta</title></head>
<%
StrConn= "Driver={SQL Server};server=nombreservidor;UID=username;PWD=pas word;DATABASE=basededatos;"
SQL= "select campo1,campo1,campo3 From tabladelabasededatos"
'num_registros = 5
num_registros=session("regpagina")
if (request.queryString("pag") <> "") then
pagina_actual = request.queryString("pag")
else
pagina_actual = 1
end if
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open StrConn
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open sql,oConn,1,2
RS.pageSize = num_registros
RS.absolutePage = pagina_actual
cantidad_campos = RS.Fields.Count
%>
<body>
<div align="center">
Página actual: <%= pagina_actual %><br>
Cantidad de páginas: <%= RS.PageCount %><br>
Registros por página: <%= RS.PageSize %><br>
Registros totales: <%= RS.RecordCount %>
</div>
<br>
<table cellspacing="2" cellpadding="2" border="1" align="center">
<tr>
<% For campo = 0 to cantidad_campos - 1 %>
<td align="center"><%=RS(campo).Name%></td>
<% Next %>
</tr>
<%
registros_mostrados = 0
While (Not RS.eof And registros_mostrados < num_registros)
registros_mostrados = registros_mostrados + 1
%>
<tr>
<%For campo=0 to cantidad_campos - 1 %>
<td align="center"><%=RS(campo)%></td>
<%Next%>
</tr>
<%
RS.MoveNext
Wend
%>
<tr>
<td colspan="<%=cantidad_campos%>" align="center">
<% i=1
Do While i <= RS.PageCount
%>
<a href="paginacion.asp?pag=<%=i%>"><%=i%></a>
<%
i=i+1
Loop %>
</td>
</tr>
</table>
<%
RS.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>
</body></html>