Jag har med hjälp utav artikeln ASP Paging (http://www.pellesoft.nu/login/articles/asp/asp_paging.asp) här på pellesoft och en massa hjälp av folket här gjort en sida med funktionen paging. Nu är det så att exemplet i artikeln använde sig utav DSN connection men det vill jag inte göra. Jag vill använda mig utav följande connection: Byt ut Paging utan DSN connection!
<!-- #include file="adovbs.inc" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("forumet.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
...men grejen är att jag inte vet hur jag i koden nedan skall ändra så att jag kan göra det.
Här är hela koden till nuvarande paging sidan.
paging.asp:
<%
'## -- skapa connection object och öppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "forum"
'## -- hur många poster ska visas per sida --
intPageSize = 15 '## -- byt ut till hur många poster du vill ska visas per sida --
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- kontrollera så att inte intPage variabeln är tom --
If intPage = "" Then intPage = 1 '## -- visa första sidan som default --
'## -- sql-fråga för att hämta data från databasen --
strSQL = "SELECT rubrik, id From personligt WHERE ref_id=0 AND aktiv=true ORDER BY datum DESC"
'## -- skapa och öppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL
'## -- bestämmer hur många poster som varje sida ska bestå av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End With
'## -- kontrollera om några poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --
'## -- visa rätt sida i recordsetet --
objRS.AbsolutePage = intPage
'## -- hur många sidor består recordsetet av --
intTotalPages = objRS.PageCount
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
response.write "<br>"
'## -- loopa igenom recordsetet och visa posterna för besökaren/användaren --
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
'## -- printa ut informationen till besökare/användaren --
response.write "" & objRS("rubrik") & "<br>" & vbCrLf
objRS.MoveNext
Loop
Else
'## -- inga poster returnerades --
'## -- visa meddelande att inga poster hittades för användaren --
End If
'## -- rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objconn = Nothing
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
'## -- include filen nedan innehåller själva subrutinen för sidnavigeringen --
%>
<!--#INCLUDE FILE="sub.asp"-->
sub.asp:
<%
Sub PageNavigation(ByVal Page, TotalPages)
Dim strScriptName
'## -- denna sidas namn --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- länk till föregående sida --
'## -- kontrollera att det inte är första sidan som visas --
If CInt(Page) > 1 Then
'## -- inte första sidan som visas så gör en länk --
Response.Write "<< Föregående "
Else
'## -- det är första sidan som ska visas. gör ingen länk --
Response.Write "<< Föregående "
End If
'## -- bygg upp själva pagebaren, dvs varje sidnummer ska ha en länk
'## -- så att besökaren snabbt kan ta sig till rätt sida --
For N = 1 To CInt(TotalPages)
If N <> CInt(Page) Then
'## -- ej aktuell sida, länka --
Response.Write "" & N & " "
Else
'## -- aktuell sida, länka ej --
Response.Write "<B>" & N & "<B> "
End If
Next
'## -- länk till nästa sida. om vi står på sista sidan ska den ej vara länkad --
If CInt(Page) < CInt(TotalPages) Then
'## -- vi är inte på sista sidan --
Response.Write "Nästa >>"
Else
'## -- vi är på sista sidan. länka ej --
Response.Write "Nästa >>"
End If
End Sub
%>Sv: Paging utan DSN connection!
objConn.Open "forum"
mot
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("forumet.mdb")&";"
/Mikael