Avatar billede plato Juniormester
06. juni 2006 - 10:58 Der er 4 kommentarer og
1 løsning

Problem med PageCount

Hejsa NG.

Jeg har et PageCount i min ASP. Det virker som sådan også fint, men når den når til sidste side giver koden fejl.

Fejl:
Gå til side error '80020009'
Exception occurred.
line 247

Linie:
  Response.Write "<a class='black' href=forum.asp?mode=view&id="&rs5("forumid")&"&page=" & intNum & ">" & intNum & "</a> "

Nogen der kan hjælpe?

Her kommer koden:
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

Set rs5 = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM forumindlaeg WHERE forumid LIKE '" & Request.QueryString("id") & "' Order By id DESC"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/data.mdb")
rs5.Open strSQL, strDSN, 1
If Not (rs5.BOF Or rs5.EOF) Then
  rs5.PageSize = 30
  rs5.AbsolutePage = intPage
  intRecCount = rs5.PageSize
  intPageCount = rs5.PageCount

  Do While Not rs5.EOF And intRecCount > 0

    If farve=1 Then
    baggrund="#C0C0C0"
    Farve= Farve + 1
    Else
    baggrund="#E1E1E1"
    farve=1
    End If
  Response.Write("<tr>")
    Response.Write("<td valign='top' width='600' class='forum_subject_bg2' bgcolor="&baggrund&" height='40'><strong><a href='forum.asp?mode=read&id=" & rs5("id") & "'>" & rs5("emne") & "</a></strong><br>Oprettet af: <font color='#800000'>" & rs5("forfatter") & "</font></td>")
    Response.Write("<td class='forum_subject_bg2' bgcolor="&baggrund&">" & rs5("dato") & "</td>")
    Response.Write("<td class='forum_subject_bg2' bgcolor="&baggrund&">10</td>")
  Response.Write("</tr>")
  Response.Write("<tr>")
    Response.Write("<td colspan='3' height='2'></td>")
  Response.Write("</tr>")
  intRecCount = intRecCount - 1
  rs5.MoveNext
  Loop
End If

Response.Write("</table><br>")
Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount

  Response.Write "<a class='black' href=forum.asp?mode=view&id="&rs5("forumid")&"&page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p class='distance'>"
If Clng(intPage) > 1 Then
  Response.Write "<a class='black' href=forum.asp?mode=view&id="&rs5("forumid")&"&page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a class='black' href=forum.asp?mode=view&id="&rs5("forumid")&"&page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If
Avatar billede fennec Nybegynder
06. juni 2006 - 11:11 #1
Bare for at være sikker, hvilken linje er så 247??
Avatar billede plato Juniormester
06. juni 2006 - 11:24 #2
Fennec.

Det står i spm. ;)
Linie:
  Response.Write "<a class='black' href=forum.asp?mode=view&id="&rs5("forumid")&"&page=" & intNum & ">" & intNum & "</a> "
Avatar billede fennec Nybegynder
06. juni 2006 - 11:40 #3
Det var også det jeg troede, men jeg bliv lige pludselig i tvivl :o)

Problemet skyldes at du vil udskrive rs5("forumid"), men pga at det er sidste side "fejler" loopet på rs5.EOF i stedet for intRecCount > 0, hvilket betyder at der ikke er flere rækker i rs5.

Udskriv Request.QueryString("id") i stedet for rs5("forumid"):
Response.Write "<a class='black' href=forum.asp?mode=view&id="&Request.QueryString("id")&"&page=" & intNum & ">" & intNum & "</a> "

Og ændre din:
... forumid LIKE '" & Request.QueryString("id") & "'..

Til:
... forumid=" & Request.QueryString("id") & "...

Like tager alt for lang tid.
Avatar billede plato Juniormester
06. juni 2006 - 12:03 #4
Tusind tak for hjælpen. Det virker. Husk at smide et svar. :)
Avatar billede fennec Nybegynder
06. juni 2006 - 12:21 #5
.o) <-- One Eyed Jack
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester