---
title: "Säkert en enkel sak..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13193-säkert-en-enkel-sak"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Brainbug"
published: "2001-12-14T15:30:00.000Z"
updated: "2001-12-14T19:28:00.000Z"
replies: 2
views: 258
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/13193-säkert-en-enkel-sak"
---

# Säkert en enkel sak...

## #1 — Brainbug, 2001-12-14T15:30Z

Hej

Jag behöver lite hjälp med en kod-snutt som inte vill fungera riktigt som jag vill. Koden är en modifiering av paging-scriptet som finns här på WF.

```
Sub PageNumbers2
	Dim i
	If TotalPages = 0 Then
		Response.Write("0")
		Exit Sub
	End If
	For i = 1 To TotalPages
		If CInt(i) <> CInt(ThisPage) Then
			Response.Write("<A href='" & ScriptName & "?page=" & i & "'>" & ((ThisPage + i) * PageSize) - PageSize & "-" & i * PageSize & "</A>")
		Else
			Response.Write("<B>" & LoopStart + 1 & "-" & i * PageSize & "</B>")
		End If
		Response.Write(" ")
	Next
End Sub
```

Tanken är att denna kod ska generera direkt-länkar till resp. sidor, så här: 1-5, 6-10, 11-15, 16-20 .....(utan komman)

Någon som har koll?

Hela koden:

```
Dim ScriptName
	ScriptName = Request.ServerVariables("SCRIPT_NAME")

'Skapa en förbindelse mot databasen
'----------------------------------
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("guest1.mdb") & ";"

'Hämta poster ur databasen genom att skapa ett recordset
'-------------------------------------------------------
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open "SELECT * FROM gastbok ORDER BY datum", Con

'Om inte recordset är tomt så skapa en 2D
'array med innehållet från databasen
'----------------------------------------
If Not RS.EOF Then
	MyArray = RS.GetRows()
End If

'Stäng recordset och koppla från
'förbindelsen mot databasen
'-------------------------------
RS.Close
Set RS = Nothing
Con.Close
Set Con = Nothing

'Deklarera hur många poster som ska visas per sida
'-------------------------------------------------
Dim PageSize
	PageSize = 5

'Avgör vilken sida dokumentet befinner sig på
'--------------------------------------------
Dim ThisPage
	If Request.QueryString("page") = "" Then
		ThisPage = 1
	Else
		ThisPage = CInt(Request.QueryString("page"))
	End If

'Räkna ut det totala antalet poster som
'hämtats från databasen
'--------------------------------------
Dim TotalRecords
	TotalRecords = UBound(MyArray,2) + 1

'Avgör hur många sidor som genererats
'------------------------------------
Dim TotalPages
	sTotalPages = TotalRecords / PageSize
	If sTotalPages < 1 Then
		sTotalPages = 1
	Else
		sDecTotalPages = sTotalPages - CLng(sTotalPages)
		If sDecTotalPages > 0 And sDecTotalPages < 0.5 Then
			sTotalPages = CLng(sTotalPages) + 1
		Else
			sTotalPages = CLng(sTotalPages)
		End If
	End If
	TotalPages = sTotalPages

'Avgör vilket record som loopen ska starta på
'--------------------------------------------
Dim LoopStart
	If ThisPage = 1 Then
		LoopStart = ThisPage - 1
	Else
		LoopStart = (ThisPage * PageSize) - PageSize
	End If

'Avgör vilket record som loopen ska stanna på
'--------------------------------------------
Dim LoopEnd
	If ThisPage = TotalPages Then
		LoopEnd = TotalRecords - 1
	Else
		LoopEnd = (LoopStart + PageSize) - 1
	End If

'"Nästa-sida-länk"
'-----------------
Sub NextPage
	If CInt(ThisPage) < CInt(TotalPages) Then
		Response.Write("<A href='" & ScriptName & "?page=" & ThisPage + 1 & "'>Nästa</A>")
	Else
		Response.Write("<B style=""color: #687E91;"">Nästa</B>")
	End If
End Sub

'"Föregående-sida-länk"
'----------------------
Sub PrevPage
	If CInt(ThisPage) > 1 Then
		Response.Write("<A href='" & ScriptName & "?page=" & ThisPage - 1 & "'>Föregående</A> ")
	Else
		Response.Write("<B style=""color: #687E91;"">Föregående</B>")
	End If
End Sub

'"Direkt-länkar till resp. sidor" modell 2
'-----------------------------------------
Sub PageNumbers2
	Dim i
	If TotalPages = 0 Then
		Response.Write("0")
		Exit Sub
	End If
	For i = 1 To TotalPages
		If CInt(i) <> CInt(ThisPage) Then
			Response.Write("<A href='" & ScriptName & "?page=" & i & "'>" & ((ThisPage + i) * PageSize) - PageSize & "-" & i * PageSize & "</A>")
		Else
			Response.Write("<B>" & LoopStart + 1 & "-" & i * PageSize & "</B>")
		End If
		Response.Write(" ")
	Next
End Sub
```

\[Redigerat av Brainbug den 14 dec 2001\]

Permalänk: https://www.webforum.nu/p/13193

## #2 — LarsG, 2001-12-14T18:18Z

```
Sub PageNumbers2
Dim i
If TotalPages = 0 Then
Response.Write "0"
Exit Sub
End If
For i = 1 To TotalPages

Dim StartRow,Endrow
startRow = (i -1) * PageSize + 1
endRow = i*pagesize
if endRow > TotalRecords then endRow = TotalRecords
If CInt(i) <> CInt(ThisPage) Then
Response.Write "<A href='" & ScriptName & "?page=" & i & "'>" & startRow  & "-" & endrow & "</A>")
Else
Response.Write("<B>" & startRow  & "-" & endRow & "</B>")
End If
Response.Write " "
Next
End Sub
```

Permalänk: https://www.webforum.nu/p/300819

## #3 — Brainbug, 2001-12-14T19:28Z

Stort tack! 
Det funkade perfekt!

Permalänk: https://www.webforum.nu/p/300820

---

Tråden på webben: https://www.webforum.nu/amne/asp/13193-säkert-en-enkel-sak
