---
title: "MoveNext utan Loop"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/91916-movenext-utan-loop"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Bjarne A"
published: "2003-12-04T22:04:50.000Z"
updated: "2003-12-08T09:28:02.000Z"
replies: 14
views: 433
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/91916-movenext-utan-loop"
---

# MoveNext utan Loop

## #1 — Bjarne A, 2003-12-04T22:04Z

Jag skall byta plats på två poster i en databas

posten med posten under i databasen
Jag trodde det vara att bara be vänligt att den skulle gå till nästa med MoveNext men den väljer samma postrad

```
<%
Dim idnummer
idnummer = Request.QueryString("artikel")
%>
<%
SQL = "SELECT * FROM soff WHERE id = " & idnummer & ""
set Rs = connect.execute(SQL)

Dim nurubrik
nurubrik = Rs("rubrik")
Dim nuingress
nuingress = Rs("ingress")
Dim nutext2
nutext2 = Rs("text2")
RS.MoveNext
set Rs2 = connect.execute(SQL) 
Dim senid
senid = Rs2("id")
Dim senrubrik
senrubrik = Rs2("rubrik")
Dim seningress
seningress = Rs2("ingress")
Dim sentext2
sentext2 = Rs2("text2")

SQL2 = "UPDATE soff SET rubrik = '" & nurubrik & "', ingress = '" & nuingress & "', text2 = '" & nutext2 & "' WHERE ID = " & senid & ""
SQL3 = "UPDATE soff SET rubrik = '" & senrubrik & "', ingress = '" & seningress & "', text2 = '" & sentext2 & "' WHERE ID = " & idnummer & ""
connect.Execute(SQL2)
connect.Execute(SQL3)
%>
```

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

## #2 — solbulle, 2003-12-04T22:12Z

För det första innehåller ditt recset endaast en post om id är unikt.
Vad är det egentligen du vill uppnå med att byta plats på posterna?

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

## #3 — LarsG, 2003-12-04T22:17Z

Eftersom du ställer samma fråga två gånger så får du samma data. Du kan använda denna fråga när du hämtar data till rs2

```
sql = "select * FROM soff WHERE id > " & idnummer 
set rs2 = connect.execute(sql)
if not rs2.eof then
'...
```

Du kan aldrig förutsätta att du alltid får data tillbaka, så du måste alltid ha med en kontroll på att eof inte är sant.

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

## #4 — Bjarne A, 2003-12-04T22:25Z

> **solbulle skrev:**
>
> För det första innehåller ditt recset endaast en post om id är unikt.
> Vad är det egentligen du vill uppnå med att byta plats på posterna?

Den skall börja sin hämtning vid den unika posten och sedan posten under var det tänkt

Jag hämtar in posterna uppifrån och ner och vill kunna byta plats på dom

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

## #5 — Bjarne A, 2003-12-04T22:35Z

Nu försökte jag så här men den tar ju samma post igen för att jag anropar samma SQL

Skall man göra två SQL anrop och hur får man den att gå ett steg framåt WHERE id = " & idnummer & "" + ett steg fram 

```
<%
SQL = "SELECT * FROM soff WHERE id = " & idnummer & ""
set Rs = connect.execute(SQL)
if not RS.eof then
Dim nurubrik
nurubrik = Rs("rubrik")
Dim nuingress
nuingress = Rs("ingress")
Dim nutext2
nutext2 = Rs("text2")
RS.MoveNext
set Rs = connect.execute(SQL)
Dim senid
senid = Rs("id")
Dim senrubrik
senrubrik = Rs("rubrik")
Dim seningress
seningress = Rs("ingress")
Dim sentext2
sentext2 = Rs("text2")
End if

SQL2 = "UPDATE soff SET rubrik = '" & nurubrik & "', ingress = '" & nuingress & "', text2 = '" & nutext2 & "' WHERE ID = " & senid & ""
SQL3 = "UPDATE soff SET rubrik = '" & senrubrik & "', ingress = '" & seningress & "', text2 = '" & sentext2 & "' WHERE ID = " & idnummer & ""
connect.Execute(SQL2)
connect.Execute(SQL3)
%>
```

 :)  :)

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

## #6 — Bjarne A, 2003-12-05T13:39Z

Hjälp... har ni lämmnat mej åt mitt öde:OO  :o

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

## #7 — Engine^, 2003-12-05T13:51Z

```
<%
SQL = "SELECT * FROM soff WHERE id = " & idnummer & ""
set Rs = connect.execute(SQL)
if not RS.eof then
Dim nurubrik
nurubrik = Rs("rubrik")
Dim nuingress
nuingress = Rs("ingress")
Dim nutext2
nutext2 = Rs("text2")
RS.MoveNext [blue]'Onödigt eftersom du i nästa ögonblick öppnar ett nytt Rs (Du hamnar även på EOF)[/blue]
set Rs = connect.execute(SQL) [blue]'Här måste du byta id om du vill ha en annan post[/blue]
Dim senid
senid = Rs("id")
Dim senrubrik
senrubrik = Rs("rubrik")
Dim seningress
seningress = Rs("ingress")
Dim sentext2
sentext2 = Rs("text2")
End if
```

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

## #8 — Bjarne A, 2003-12-05T14:06Z

Men hur kan man byta id till nästa post som är under i databasen

> 'Här måste du byta id om du vill ha en annan post

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

## #9 — solbulle, 2003-12-05T14:32Z

Du måste göra som LarsG skriver, då plockar du ju ut det id som har högre värde.
typ kanske:

```
<%
SQL = "SELECT * FROM soff WHERE id = " & idnummer
set Rs = connect.execute(SQL)
if not RS.eof then
Dim nurubrik
nurubrik = Rs("rubrik")
Dim nuingress
nuingress = Rs("ingress")
Dim nutext2
nutext2 = Rs("text2")
End if

sql = "select * FROM soff WHERE id > " & idnummer 
set rs2 = connect.execute(sql)
if not rs2.eof then
Dim senid
senid = Rs2("id")
Dim senrubrik
senrubrik = Rs2("rubrik")
Dim seningress
seningress = Rs2("ingress")
Dim sentext2
sentext2 = Rs2("text2")
End if

SQL2 = "UPDATE soff SET rubrik = '" & nurubrik & "', ingress = '" & nuingress & "', text2 = '" & nutext2 & "' WHERE ID = " & senid
SQL3 = "UPDATE soff SET rubrik = '" & senrubrik & "', ingress = '" & seningress & "', text2 = '" & sentext2 & "' WHERE ID = " & idnummer
connect.Execute(SQL2)
connect.Execute(SQL3)
%>
```

Fast jag är ju fortfarande osäker på om du inte går över ån efter vatten... Du har alltså kanske 10 id från nummer 1-10 och vill byta plats/innehåll på tex 4 samt 5?

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

## #10 — Bjarne A, 2003-12-06T15:43Z

OK det fungerade ju som det skulle. 
Så som jag fattar det så talar man inte om att man skall använda nästa post utan nästa post hämtas automatiskt andra gånen eller hur funkar det?

Vad menar du med att man går över ån efter vatten? kan man göra det enklare  :l  :D

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

## #11 — solbulle, 2003-12-06T15:52Z

Du talar visst om vilken post.
I den första frågan hämtar du: id = idnummer
Nästa gång tar du: id \>  idnummer 

Ser du skillnaden?

Jag ska inte opponera mig mot ditt uppägg erftersom jag inte har en susning om vad du skapar för något, det jag funderade på var om du ändrar ordningen i db bara för att skriva ut din data annorlunda. I så fall skulle man kunna lösa det vid själva utskrivningen i stället.
Men som sagt, jag vet inte dina syften.

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

## #12 — Bjarne A, 2003-12-06T17:31Z

Ja nu ser jag. Tänkte inte inte i dom banorna. Låste mej vid att jag inte har en rak nummerföljd i id posterna då man kan radera i mellan och funkar det inte med att numeriskt flytta med typ id = idnummer + 1 men nästa större funkar ju Tack!

Sidor skapas med ett formulär som skickas till databasen där "rubrik" blir en klickbar länk i en meny. Man skall sedan kunna flytta dom i menyn som hämtas uppifrån och mer i databasen.

Det går säkert att bestämma vilken ordning som dom skall hämtas vid utskriften men jag vet inte hur

Tack för hjälpen

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

## #13 — emission, 2003-12-07T12:43Z

Eller ännu hellre bara en fråga...

```
<%
SQL = "SELECT * FROM soff WHERE id >= " & idnummer & " ORDER BY id"
set Rs = connect.execute(SQL)
if not RS.eof then
Dim nurubrik
nurubrik = Rs("rubrik")
Dim nuingress
nuingress = Rs("ingress")
Dim nutext2
nutext2 = Rs("text2")
Rs.Movenext
if not rs.eof then
Dim senid
senid = Rs("id")
Dim senrubrik
senrubrik = Rs("rubrik")
Dim seningress
seningress = Rs("ingress")
Dim sentext2
sentext2 = Rs("text2")
SQL2 = "UPDATE soff SET rubrik = '" & nurubrik & "', ingress = '" & nuingress & "', text2 = '" & nutext2 & "' WHERE ID = " & senid
SQL3 = "UPDATE soff SET rubrik = '" & senrubrik & "', ingress = '" & seningress & "', text2 = '" & sentext2 & "' WHERE ID = " & idnummer
connect.Execute(SQL2)
connect.Execute(SQL3)
End if

End if

%>
```

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

## #14 — Engine^, 2003-12-08T08:23Z

Det kan vara av intresse att endast välja ut dom två poster man jagar också...

```
SQL = "SELECT TOP 2 * FROM soff WHERE id >= " & idnummer & " ORDER BY id"
```

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

## #15 — Glitter, 2003-12-08T09:28Z

om du inte har identity på id eller om du inte kan sortera på något annat sätt så kan du göra på det jobbiga sättet:

```
SQL = "SELECT * FROM sof"
set Rs = connect.execute(SQL)

do
if rs("id") = idnummer then

Dim nurubrik
nurubrik = Rs("rubrik")
Dim nuingress
nuingress = Rs("ingress")
Dim nutext2
nutext2 = Rs("text2")
Rs.Movenext
if not rs.eof then
Dim senid
senid = Rs("id")
Dim senrubrik
senrubrik = Rs("rubrik")
Dim seningress
seningress = Rs("ingress")
Dim sentext2
sentext2 = Rs("text2")
SQL2 = "UPDATE soff SET rubrik = '" & nurubrik & "', ingress = '" & nuingress & "', text2 = '" & nutext2 & "' WHERE ID = " & senid
SQL3 = "UPDATE soff SET rubrik = '" & senrubrik & "', ingress = '" & seningress & "', text2 = '" & sentext2 & "' WHERE ID = " & idnummer
connect.Execute(SQL2)
connect.Execute(SQL3)

end if
rs.movenext
loop until rs.eof
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/91916-movenext-utan-loop
