.ASP de sayfalama işlemi kullandığın veritabanına göre değişir ;
Eğer Access yada MSSQL kullanıyorsan sayfalama işlemi aynıdır , Mysql veritabanı kullanıyorsan sayfalama işleminden önce yapılması gerek başka işlemlerde vardır Örnekleme yaparak anlatalım .

1 - MYSQL veritabanında .asp sayfalama işlemi
<%
Dim adoCon
Dim adoQuery

'Mysql için Veritabanı bağlantı Nesnesi
adoQuery= "DRIVER={MySQL ODBC 3.51 Driver}; Server=localhost; Port=3306; UID=KullaniciAdi; pwd=Parolasi; db=VeritabaniAdi;"
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open (adoQuery)



'Şimdi işimize lazım olan Tabloyu açalım
'Burada lazım olan tabloda ne kadar veri olduğunu bulacağız
'Bu sayfalamada işimize yarayacak


Set KacVeri = adoCon.Execute ("SELECT Count(idno) FROM tablonunadi;")
ToplamVeriAdedi = KacVeri(0) 'Veri sayısını aldık

'Where yan tümcesini kullanarak ta
'işimize lazım olanlar için toplam sayı alabiliriz




'Şimdi yine lazım olan tabloya bağlanalım ve sayfalamaya için işlem yapalım
'Bağlanmadan önce Sayfalamada kullanacağımız değişkenleri atayalım

GelenSayfa = Request.QueryString("page") 'page requestinden sayfa numarası

If Cint(GelenSayfa) <> "" Then 'Yani page request i boş değilse
   GecerliSayfamiz = GelenSayfa
Else
    GecerliSayfamiz = 1 'Eğer page request i boş ise geçerli sayfa 1 oldu
End If


BirSayfadaVeriAdedi = 20 'Her sayfada 20 tane veri göstereceğiz


'Bu kısmı sayfalamada oluşan bir hata için eklemiştim
SayfalamaSayisi=Cint(ToplamVeriAdedi) / Cint(BirSayfadaVeriAdedi)
	If SayfalamaSayisi Mod 2 = 0 Then
SayfaSayisiIcin=SayfalamaSayisi
	Else
SayfaSayisiIcin = Cint(SayfalamaSayisi) + 1
	End if
'Gerekli oluyor :D


MysqlIcinSayfalama = "&(BirSayfadaVeriAdedi * GecerliSayfamiz )-(BirSayfadaVeriAdedi ) & "," & BirSayfadaVeriAdedi & "

'MysqlIcinSayfalama değişkeninde şunu yaptık
'Mysql de sayfalama işlemi "LIMIT" ile yapıldığı için ;
'Diyelim GecerliSayfamiz = 1 di bunu  BirSayfadaVeriAdedi ile yani 20 ile
'Çarptık Sonra yine BirSayfadaVeriAdedi nden yani 20 den çıkardık sonuç = 0 oldu
' Böylece LIMIT = 0,20 yaptı
'Eğer GecerliSayfamiz  = 2 olsaydı bu sefer 20,20 olacaktı
'Nedir bu yani 1. kayıttan başla 20 tane göster,
'Nedir 20. kayıttan başla ve 20 tane veri göster demektir

'Sayfalama için değişkenler tamamdır
'Şimdi sayfalama işlemine geçebiliriz

Set Rs = adoCon.Execute ("SELECT * FROM tablonunadi ORDER BY idno DESC LIMIT " & MysqlIcinSayfalama & " ;")

'Burada dikket edeciğiz husus Kayıt sayısını aldığımız tablo ile
'verileri göstereceğimiz tablonu adının aynı olması ve "WHERE" yan tümcesi gibi
'yardımcı sorgular kullanırsak iki sorgulamadada aynısını kullanmamız lazım

Do While Not Rs.EOF

Response.Write (Rs("Sutunadi"))
Response.Write ("<br>")
Response.Write (Rs("DigerSutun"))
Response.Write("<br>")

Rs.Movenext
Loop

'Do Loop döngüsüne ile verileri sıralattık işlem buraya kadar tamam
'Sıra geldi sayfalama için kodlamaya


If not ToplamVeriAdedi="0" Then
'Sayfalatma Yapıyoruz
If Cint(GecerliSayfamiz) = 1 Then
Response.Write " "
Else
a = Cint(GecerliSayfamiz) -1
If not a = 0 Then
Response.Write "<a  href=?page=" & a & qstring &"><<  Önceki    </a> "
End if
End If

	If Cint(GecerliSayfamiz) + 5 > Cint(SayfaSayisiIcin) Then
	b = Cint(SayfaSayisiIcin)
	Else
	b = Cint(GecerliSayfamiz) + 5
	End If
	
If Cint(GecerliSayfamiz) < 5 Then
c = 1
Else
c = Cint(GecerliSayfamiz) - 5
End If


	
	For j = c To b

If j = Cint(GecerliSayfamiz) Then
Response.Write "[<b>" & j & "</b>]  "
Else
If not j = 0 Then
Response.Write "<a href=?page=" & j & qstring &".html>" & j & "</a>  "
End if
End If
Next

	If Cint(GecerliSayfamiz) = Cint(SayfaSayisiIcin) Then
	Response.Write " "
	Else
	a = Cint(GecerliSayfamiz) + 1
	Response.Write "<a href=?page=" & a & qstring &".html>    Sonraki >></a> "
	End If
End if

Rs.Close
SET Rs = NOTHING
%>


MYSQL için SAYFALAMA İŞLEMLERİNİ YAPTIK BİRAZ UZUN GİBİ GELEBİLİR AMA
KOD ZENGİNLİĞİ OLDU BİRAZ

----------------------------------------------------------------------------------



2 - MSSQL ve ACCESS için SAYFALAMA İŞLEMİ

<%
Dim adoCon
Dim adoQuery

'Bu Connection Nesnesi MSSQL için
Set adoCon=Server.CreateObject("Adodb.Connection")
adoQuery="driver={SQL Server};server=localhost;uid=KullaniciAdi;pwd=Parolasi;database=VeritabaniADI"
adoCon.Open (adoQuery)



'Buda ACCESS için
Set  adoCon = Server.CreateObject("ADODB.Connection")
adoQuery = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("dataklasor/databaseAdi.mdb")
adoCon.Open (adoQuery)

'Hangisi Lazımsa onu kullanırız


  Set rs = Server.CreateObject("Adodb.Recordset")
  sql="SELECT * FROM TablonunAdi ORDER BY idno DESC "
  rs.Open sql,adoCon,1

On Error Resume Next
BirSayfadaVeriAdedi = 20 'hersayfada 20 tane göster
page = CInt(Request("page")) ' Geçerli Sayfa

	If (page ="" or page = 0) Then page = 1 Else page=page
	rs.pageSize = BirSayfadaVeriAdedi
	rs.absolutePage=page

Do While Not rs.Eof and i<rs.pagesize
	i=i+1


Response.Write (rs("SutunAdi"))
Response.Write ("<br>")
Response.Write (rs("DigerSutun"))
Response.Write ("<br>")

rs.Movenext
Loop



'Şimdi sayfalamayı yapalım
If page = 1 Then
Response.Write " "
Else
a = page -1
Response.Write "<a  href=?page=" & a & qstring &"><<  Önceki    </a> "
End If

	If page + 5 > rs.pagecount Then
	b = rs.pagecount
	Else
	b = page + 5
	End If
	
If page < 5 Then
c = 1
Else
c = page - 5
End If


	
	For j = c To b

If j = page Then
Response.Write "[<b>" & j & "</b>]  "
Else
Response.Write "<a href=?page=" & j & qstring &">" & j & "</a>  "
End If
Next

	If page = rs.pagecount Then
	Response.Write " "
	Else
	a = page + 1
	Response.Write "<a href=?page=" & a & qstring &">    Sonraki >></a> "
	End If

rs.close
set rs = Nothing

%>
Access ve MSSQL veritabanında İşlemler aynıdır farketmez


Çok uzun bir makale oldu yine inşallah sıkıcı gelmemiştir