Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer
Artiklar > ASP

Paging med Access

Då var det dags att skriv en tredje artikel om Paing, men denna gång kommer jag att gå igenom hur man gör en paging (1, 2, 3...) när man jobbar med Access databaser.

Hämta posterna

Först och främst ska vi hämta alla poster från Access databasen, jag ger ett exempel på kod nedan:

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("db.mdb") & ";Uid=Admin;Pwd=lösenord"
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT memUsername FROM tblMembers WHERE memOnline = 1"
RecSet.Open SQL, Connect, 1, 2

Nu när vi har hämtat alla poster från databasen db.mdb så är det dags att bestämma hur många poster som ska visas per sida. Vi måste även kontrollera variabeln intPage som vi skapat som håller reda på vilken sida vi befinner oss på.

Dim sida
intPage = Trim(Request.QueryString("p"))
If Not intPage <> "" Then
    intPage = 1
End If

RecSet.PageSize = 10
RecSet.AbsolutePage = intPage

Det AbsolutePage gör är att den ställer in rätt sida i pagingen (intPage).

Loopa ut innehåller

Det gör vi helt enkelt med en While-loop.

While intRow < RecSet.PageSize And Not RecSet.EOF
    intRow = intRow + 1
    Response.Write(RecSet(0) & "<br />
")
    RecSet.MoveNext
Wend

Det vi gjorde var relativt enkelt. Vi sa åt den att loopa/skriva ut posterna medan intRow är mindre än antalet poster per sida OCH medan det finns poster kvar att loppa ut. Ganska logiskt eller hur?

intRow är den variabeln som ska hålla koll på hur många poster som loopats ut, den är ju viktig för att loopen ska fungera.

Skriv ut pagingen

Det är nästan lika enkelt som att loopa ut informationen. Titta på koden nedan så ska jag hjälpa dig att förstå den:

Kod:
If RecSet.PageCount > 1 Then
    For i = 1 To RecSet.PageCount Step 1
        If i = Clng(intPage) Then
            Response.Write([ "& i &" ], ")
        Else
            Response.Write("<a href=""Sida.asp?p="&i&""">"& i &"</a>, ")
        End If
    Next
End If

Sådär, den första If-satsen kollar det finns mer än en sida, om det gör det så fortsätter den vidare till loopen som ska helt enkelt loopa ut alla sidor.
Efter det gör vi en kontroll som ser till att om den sidan vi befinner oss på är den samma som numret som just loopats ut så får den två klamrar bredvid, ex. [2]. De andra sidorna blir till länkar.

Slutord

Kom ihåg att detta är för en Access databas, om du vill använda paging till en MySQL databas så kan du titta på mina två andra artiklar om paging, de handlar just om paging med MySQL.

Skapades: 2007-08-19 23:13:43
Skribent: Shadi
Lästs 2099 gånger
Betyg: 0 (artikeln har endast 1 röster, det krävs minst 5 för ett betyg)

Kommentarer

Ingen har kommenterat denna artikel än.

© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy