Montei um exemplo simples com comentarios pra você entender. Eu testei aqui e funcionou, se aparecer algum problema avisa aí, é só adaptar: <%
total = 10 'aqui muda-se para o recordcount
total = int(total)
pagina = request("pagina")
'se for a primeira visita, então não terá a variavel "pagina" na URL
if pagina = "" then
pagina = 1
end if
'determina o intervalo a ser exibido, 2 paginas antes até duas paginas a mais da atual
inicial = pagina - 2
final = pagina + 2
'certifica que não aparecerá um valor negativo
If inicial < 1 Then
inicial = 1
End If
'certifica que não aparecerá um valor maior do que o total de paginas
If final > total Then
final = total
End If
'quando estiver na primeira pagina, determina que será até o 5 registro
if inicial = 1 then
final = 5
end if
'quando estiver na ultima pagina, determina que irá do ultimo até -5 registros
if final = total then
inicial = total - 5
end if
For i = inicial To final
If i = CInt(pagina) Then
Response.Write i & " "
Else
Response.Write "<a href=teste.asp?pagina="&i&">"&i&"</a> "
End If
Next
%>