---
title: "Avsluta Loop om värdet finns fler ggr"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/128398-avsluta-loop-om-värdet-finns-fler-ggr"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "bigsky"
published: "2005-05-17T20:14:32.000Z"
updated: "2005-05-19T07:23:01.000Z"
replies: 14
views: 408
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/128398-avsluta-loop-om-värdet-finns-fler-ggr"
---

# Avsluta Loop om värdet finns fler ggr

## #1 — bigsky, 2005-05-17T20:14Z

Hur fanken avslutar man loopen och varje värde bara ska skrivas ut en gång?

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

## #2 — voigtann1, 2005-05-17T20:21Z

kan man inte använda exit for ?

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

## #3 — bigsky, 2005-05-17T20:25Z

Jo, men hur skulle det se ut? Hur kollar man om samma värde håller på att skrivas ut igen om det finns dubletter?

```
Do Until rs.EOF

rs.MoveNext
Loop
```

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

## #4 — Nickemannen, 2005-05-17T20:29Z

Är värdena ordnade eller kan dom komma huller och buller?

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

## #5 — bigsky, 2005-05-17T20:30Z

Ska vara ordnade.

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

## #6 — Nickemannen, 2005-05-17T20:37Z

OBS! Inte testat koden.

Denna kod förutsätter att värdena kommer i ordning t.ex. om det är nummer så skall det komma såhär

T.ex.
1
1
1
2
4
4
6
8
8

Inte t.ex.
5
3
6
7
5

```
Dim Exit 'bool
Dim Temp
Exit = false

Do Until Rs.Eof And Not Exit

If Temp = Rs("kolumn") Then
Exit = true
Else
Temp = Rs("Kolumn")
'Resten av koden
End If

Rs.MoveNext
Loop
```

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

## #7 — bigsky, 2005-05-17T21:36Z

Det är nummer ja, men hur blir det om dessa inte är i ordning då?

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

## #8 — Erik Juhlin, 2005-05-18T06:05Z

```
Dim dic
Set dic = Server.CreateObject("Scripting.Dictionary")
dic.CompareMode = 1

Do Until rs.EOF
	If dic.Exists("n" & rs("kolumn").Value) Then
		Exit Do
	Else
		dic("n" & rs("kolumn").Value) = 1
	End If
	
	'do your thing...
	
	rs.MoveNext
Loop

Set dic = Nothing
```

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

## #9 — Engine^, 2005-05-18T06:58Z

Om det ändå är ett recordset, varför inte sålla bort dubletter när du plockar ut datat?

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

## #10 — Troxy, 2005-05-18T09:05Z

Engine^, precis, tänkte också det. Jag misstänker att du hämtar ut onödigt mycket ur databasen. Gör en mer specifik SQL-fråga som bara returnerar de poster du vill visa istället.

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

## #11 — Jesper T, 2005-05-18T09:43Z

Spring inte över ån efter vatten. ;)

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

## #12 — bigsky, 2005-05-18T17:06Z

Såhär ligger det till. I tabellen ligger det ordrar. Varje rad i tabellen är en beställd produkt. Om flera produkter beställts i samma order är det alltså flera rader som har samma order id.
Jag vill lista alla ordrar med order id som länk, alltså until rs.EOF men bara skriva ut det order id en gång för varje order. Det är ju dumt att ha samma länk flera gånger.

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

## #13 — Troxy, 2005-05-18T21:36Z

Då kan du kan lösa detta direkt i SQL-frågan och slippa massor med jobbig ASP-kod.

Använd Distinct på Order-ID:t för att filtrera bort dubletter:

```
SELECT DISTINCT OrderID FROM tblOrders
```

Hoppas du förstår!

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

## #14 — bigsky, 2005-05-19T04:18Z

Problemet med DISTINCT är att man inte kan sortera resultatet med ORDER BY. Jag får iaf ett felmeddelande.

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

## #15 — Engine^, 2005-05-19T07:23Z

GROUP BY OrderId

Använd inte distinct.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/128398-avsluta-loop-om-värdet-finns-fler-ggr
