---
title: "Lista poster från en databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/81272-lista-poster-från-en-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Magic"
published: "2003-07-04T07:27:40.000Z"
updated: "2003-07-04T15:37:28.000Z"
replies: 11
views: 299
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/81272-lista-poster-från-en-databas"
---

# Lista poster från en databas

## #1 — Magic, 2003-07-04T07:27Z

Hej!

Jag har ett par hemsidor där medlemmarna på sidorna finns inlagda i en databas.

Mitt problem nu är att jag har fått så många medlemmar så det är jobbilgt att lista alla medlemmar på en asp-sida. Jag skulle vilja dela upp innehållet och visa typ 10 i taget. Antingen nummeriskt, ex Föregående 1 2 3 4 5 Nästa,  eller per bokstavspar, ex A-C, D-F, F-I......

Mitt problem är bara hur gör man??

Jag kör en accessdatabas med en vanlig select som listar samtliga funna poster.

```
<% Texter = "SELECT * FROM medlem ORDER BY Enamn"

   RecSet.Open Texter, Connect, adOpenStatic, adLockOptimistic
%>
<div align="left" class="bread">
   
<%
    Do While Not RecSet.EOF
       Response.Write "<p><a HREF='mailto:" & RecSet("Epost") & "'>" & RecSet("Enamn") & ", " & RecSet("Fnamn") & "</a><br><i>" & RecSet("Yrke") & "</i><br>" & RecSet("Adress") & "<br>" & RecSet("Postnr") & "  " & RecSet("Padress") & "<br>Tel bost " & RecSet("Bost") & ", Tel arb " & RecSet("Arb") & ", Tel mob " & RecSet("Mob") & ""
       RecSet.MoveNext
    Loop
%>
</div>

<% 
  RecSet.Close
%>
```

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

## #2 — ekke_t, 2003-07-04T07:58Z

```
<% 
strSQL = "SELECT * FROM medlem ORDER BY Enamn"
objRS.PageSize = 20
objRS.CursorLocation = 3
objRS.CursorType = 3
objRS.Open strSQL, Connect, 3

if not objRS.EOF then
	if Request.QueryString("page")<>"" then
		objRS.AbsolutePage = Request.QueryString("page")
	else
		objRS.AbsolutePage = 1
	end if

	intPageNbr = objRS.AbsolutePage
	intPageSize = objRS.PageSize
else
	intPageNbr = 1
	intPageSize = 20
end if

'Response.Write(intPageNbr)

strSQL = "SELECT Count(*) AS antal FROM medlem"
set objRSCounter = server.CreateObject("adodb.recordset")
objRSCounter.Open strSQL, Connect
if not objRSCounter.EOF then
	intCount = objRSCounter("antal")
else
	intCount = 0
end if
objRSCounter.Close
set objRSCounter = nothing

%>
<div align="left" class="bread">
   
<%
    while not objRS.EOF
       Response.Write "<p><a HREF='mailto:" & objRS("Epost") & "'>" & objRS("Enamn") & ", " & objRS("Fnamn") & "</a><br><i>" & objRS("Yrke") & "</i><br>" & objRS("Adress") & "<br>" & objRS("Postnr") & "  " & objRS("Padress") & "<br>Tel bost " & objRS("Bost") & ", Tel arb " & objRS("Arb") & ", Tel mob " & objRS("Mob") & ""
       objRS.MoveNext
    wend

if intPageNbr > 1 then
%>
<a href="sidan.asp?page=<%=intPageNbr-1%>">&laquo; Föregående</a>
<%
else
%>
laquo; Föregående
<%
end if
%>
&nbsp;|&nbsp;
<%
if i=intPageSize then	  
%>
<a href="sidan.asp?page=<%=intPageNbr+1%>">Nästa &raquo;</a>
<%
else
%>
Nästa &raquo;
<%
end if
%>
</div>

<% 
  objRS.Close
%>
```

Testa detta :) (obs otestat)

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

## #3 — Magic, 2003-07-04T08:20Z

Gick inte så bra!

Fick detta felmeddelande:

```
Microsoft VBScript runtime error '800a01a8' 

Object required: '' 

/_secure/medlem.asp, line 548
```

Och på den raden står det:

```
objRS.PageSize = 20
```

Nåt tips?

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

## #4 — ekke_t, 2003-07-04T08:43Z

Du måste byta ut

```
Set RecSet=Server.CreateObject("adodb.recordset")
```

mot

```
Set objRS=Server.CreateObject("adodb.recordset")
```

i din kod

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

## #5 — Magic, 2003-07-04T08:57Z

Nu har jag fått allt klart.

Problemet nu är väl bara att loopen ligger efter man kontrollerar om filen är EOF första gången. Och den kommer jag inte in i sista if satsen....

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

## #6 — Magic, 2003-07-04T09:30Z

Nu är jag ett steg närmare en lösning men behöver hjälp.

Kolla in koden här ovanför som Erik Skickade mig. Den fungerar bra. Men variablerna intPageNbr och  intPageSize förändras inte.  Sista loopen har ju inget annat att ta hänsyn till än att köra till EOF.

Kan nån hjälpa mig med att få till slutet, tack!

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

## #7 — OveRRidE, 2003-07-04T09:59Z

> **Magic skrev:**
>
> Loopen säger ju inte till när jag ska sluta, eller hur? Den kör ju bara till EOF.
> 
> Kolla:
> 
>
>
> ```
> <%
>     Do while not RecSet.EOF
>        Response.Write "<p><a HREF='mailto:" & RecSet("Epost") & "'>" & RecSet("Enamn") & ", " & RecSet("Fnamn") & "</a><br><i>" & RecSet("Yrke") & "</i><br>" & RecSet("Adress") & "<br>" & RecSet("Postnr") & "  " & RecSet("Padress") & "<br>Tel bost " & RecSet("Bost") & ", Tel arb " & RecSet("Arb") & ", Tel mob " & RecSet("Mob") & ""
>        RecSet.MoveNext
> 	Loop
> %>
> <%
> ```

'Do while' och 'loop' gör exakt samma sak som 'while' och 'wend' gör, så det är inte problemet.

Dessutom är ju faktiskt EOF slutet av ditt recordset, så det är ju rätt i vilket fall i såfall. ;)

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

## #8 — Magic, 2003-07-04T10:03Z

Kärt barn har många namn....... :h 

Men min fråga kvarstår, hur kan jag få värderna i variablerna att ändras i loopen? Jag ska ju bara visa 20 poster åt gången. Sen ska man ju klicka på \>\>nästa.

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

## #9 — Magic, 2003-07-04T10:32Z

Lista antal poster från databas II

Nu fungerar nästan allt som det ska.

Men ett problem kvarstår. Jag får fortfarande inte med endast 20 poster på varje sida. Det verkar som om variablerna inte förändras. Hur förändrar jag dessa enligt mina önskemål? Här kommer koden:

```
<% 
strSQL = "SELECT * FROM medlem ORDER BY Enamn"
RecSet.PageSize = 20
RecSet.CursorLocation = 3
RecSet.CursorType = 3
RecSet.Open strSQL, Connect, 3

if not RecSet.EOF then
	if Request.QueryString("page")<>"" then
		RecSet.AbsolutePage = Request.QueryString("page")
	else
		RecSet.AbsolutePage = 1
	end if

	intPageNbr = RecSet.AbsolutePage
	intPageSize = RecSet.PageSize
else
	intPageNbr = 1
	intPageSize = 20
end if

Response.Write(intPageNbr)
Response.Write "<br>"
Response.Write(intPageSize)

strSQL = "SELECT Count(*) AS antal FROM medlem"
set RecSetCounter = server.CreateObject("adodb.recordset")
RecSetCounter.Open strSQL, Connect
if not RecSetCounter.EOF then
	intCount = RecSetCounter("antal")
else
	intCount = 0
end if
RecSetCounter.Close
set RecSetCounter = nothing

Response.Write "<br>"
Response.Write(intCount)

%>
<div align="left" class="bread">
   
<%
    Do while not RecSet.EOF
       Response.Write "<p><a HREF='mailto:" & RecSet("Epost") & "'>" & RecSet("Enamn") & ", " & RecSet("Fnamn") & "</a><br><i>" & RecSet("Yrke") & "</i><br>" & RecSet("Adress") & "<br>" & RecSet("Postnr") & "  " & RecSet("Padress") & "<br>Tel bost " & RecSet("Bost") & ", Tel arb " & RecSet("Arb") & ", Tel mob " & RecSet("Mob") & ""
       RecSet.MoveNext
	Loop
%>
<%
Response.Write "<br>"
Response.Write(intPageNbr)
if intPageNbr > 1 then
%>
<p>
<a href="medlem.asp?what=oversikt&open=yes&page=<%=intPageNbr-1%>">« Föregående</a>
<%
else
%>
<p>
«  Föregående
<%
end if
%>
 | 
<%
if i=intPageSize then	  
%>
<a href="medlem.asp?what=oversikt&open=yes&page=<%=intPageNbr+1%>">Nästa »</a>
<%
else
%>
Nästa »
<%
end if
%>
</div>

<% 
  RecSet.Close
%>
```

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

## #10 — ekke_t, 2003-07-04T10:56Z

ojdå... glömde detta

```
i=0
do while not RecSet.EOF and i<intPageSize
i=i+1
...
...
loop
```

lägg till det så funkar det... det är ju lite meckigt att man måste räkna poster själv... men så är det... ;)

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

## #11 — Magic, 2003-07-04T11:05Z

Stort tack!

Jag har fixat det hela och det fungerar utmärkt!

Här är hela koden, för den som vill se den (finns även i part 2):

```
<% 
strSQL = "SELECT * FROM medlem ORDER BY Enamn"
RecSet.PageSize = 20
RecSet.CursorLocation = 3
RecSet.CursorType = 3
RecSet.Open strSQL, Connect, 3

if not RecSet.EOF then
	if Request.QueryString("page")<>"" then
		RecSet.AbsolutePage = Request.QueryString("page")
	else
		RecSet.AbsolutePage = 1
	end if

	intPageNbr = RecSet.AbsolutePage
	intPageSize = RecSet.PageSize
else
	intPageNbr = 1
	intPageSize = 20
end if

'Response.Write(intPageNbr)

strSQL = "SELECT Count(*) AS antal FROM medlem"
set RecSetCounter = server.CreateObject("adodb.recordset")
RecSetCounter.Open strSQL, Connect
if not RecSetCounter.EOF then
	intCount = RecSetCounter("antal")
else
	intCount = 0
end if
RecSetCounter.Close
set RecSetCounter = nothing
%>
<div align="left" class="bread"> 
<%
    i=0
	Do while not RecSet.EOF and i < intPageSize
	i=i+1
       Response.Write "<p><a HREF='mailto:" & RecSet("Epost") & "'>" & RecSet("Enamn") & ", " & RecSet("Fnamn") & "</a><br><i>" & RecSet("Yrke") & "</i><br>" & RecSet("Adress") & "<br>" & RecSet("Postnr") & "  " & RecSet("Padress") & "<br>Tel bost " & RecSet("Bost") & ", Tel arb " & RecSet("Arb") & ", Tel mob " & RecSet("Mob") & ""
       RecSet.MoveNext
    Loop
%>
<%
if intPageNbr > 1 then
%>
<p>
<a href="medlem.asp?what=oversikt&open=yes&page=<%=intPageNbr-1%>">« Föregående</a>
<%
else
%>
<p>
«  Föregående
<%
end if
%>
 | 
<%
if i=intPageSize then	  
%>
<a href="medlem.asp?what=oversikt&open=yes&page=<%=intPageNbr+1%>">Nästa »</a>
<%
else
%>
Nästa »
<%
end if
%>
</div>
<% 
  RecSet.Close
%>
```

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

## #12 — solbulle, 2003-07-04T15:37Z

Hyfsat onödigt att starta en ny tråd...

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/81272-lista-poster-från-en-databas
