---
title: "Fastnat . Vanlig loop"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/64282-fastnat-vanlig-loop"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "CatZ"
published: "2003-01-09T07:46:11.000Z"
updated: "2003-01-13T07:58:53.000Z"
replies: 13
views: 273
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/64282-fastnat-vanlig-loop"
---

# Fastnat . Vanlig loop

## #1 — CatZ, 2003-01-09T07:46Z

```
Dim i, j, plac
plac = 1
Response.Write "<table width='100%' border='0' cellpadding='3' cellspacing='0' class='table'>" _
	& "<tr class='td1'>" _
		& "<td>Plac.</td>" _
		& "<td>Lag</td>"
		j = 1
		For i = 1 to AntalOmg()
			Response.WRite "<td>Omg " &  j & "</td>"
		j = j + 1
		Next
Response.Write "<td>VP</td>" _
	& "</tr>"

Do While Not objRS.EOF
'
'Samlar Information här och placerar dem i variabler
'
Response.Write "<tr class='td2'>" _
		& "<td>" & plac & "</td>" _
		& "<td>" & Klubb  & "</td>" 
[b]		If HemmaID = LagID Then 
			Response.Write	"<td>" & HemmaVP & "</td>"
		Else 
			Response.Write	"<td>" & BortaVP & "</td>"
		End If[/b]
plac = plac + 1 
objRS.MoveNext
Loop
```

Den koden i fet stil skriver bara HemmaVP eller BortaVP en gång hur ska jag göra för att få det att fungera ? så att det skrivs för varje gång det finns ett värde i antingen HemmaVP el BortaVP ?

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

## #2 — h0lger, 2003-01-09T07:59Z

Ser inget rs.MoveNext endast objRS.MoveNext

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

## #3 — CatZ, 2003-01-09T08:04Z

Det är inget fel på koden, bara det att inte If HemmaID osv skriver ut mer än ett värde, hur ska man lösa en sådan sak ?

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

## #4 — h0lger, 2003-01-09T08:17Z

```
 if HemmaVP <> "" then
            varLocation = HemmaVP
         elseif BortaVP <> "" then
            varLocation = BortaVP
         End If

         Response.Write "<td>" & varLocation & "</td>"
```

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

## #5 — CatZ, 2003-01-09T08:40Z

Försöker med detta men får det inte att fungera riktigt

```
Dim stromg, strMatchID, strImp, strVP 
Do While NOT objRS2.EOF
	If objRS2("HemmaID") = LagID Then
		strImp = Array(objRS2("HemmaImp"))
	Else
		strImp = Array(objRS2("BortaImp"))
	End If
objRS2.MoveNext
Loop
for i = 1 to UBound(strImp,1)
	Response.Write "<td>" & strImp(0) & "</td>"
Next
```

 Det verkar inte som om något sparas i min söta lilla array :l

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

## #6 — CatZ, 2003-01-09T08:46Z

Hmm nu har jag suttit och tragglar hur länge som helst det enklaste vore kanske att samla in alltihop med getrows och sedan sortera på det.

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

## #7 — h0lger, 2003-01-09T09:49Z

Du måste Redim:a Arrayen för varje varv du gör

```
Dim stromg, strMatchID, strImp, strVP, lngCount
Redim strImp(0)  'Vet inte om denna raden behövs när jag 
'gör Redim Preserve inne i loopen. Pröva!
lngCount = 0
Do While NOT objRS2.EOF
                Redim Preserve strImp(lngCount)
	If objRS2("HemmaID") = LagID Then
		strImp(lngCount) = objRS2("HemmaImp")
	Else
		strImp(lngCount) = objRS2("BortaImp")
	End If
            lngCount = lngCount + 1
objRS2.MoveNext
Loop
for i = 0 to UBound(strImp,1)
	Response.Write "<td>" & strImp(i) & "</td>"
Next
```

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

## #8 — CatZ, 2003-01-09T14:56Z

```
Set objRS2 = dbCom.Execute ("SELECT rImp, rVP, Omgang FROM tblResultat WHERE LagID = " & strLagID & " ")
Dim strImp, strVP
If objRS2.EOF Then
	strImp =	""
	strVP  = "<td>&nbps;</td>"

Else
Do while NOT objRS.EOF
	strImp = objRS2("rImp")
	strVP = "<td>" & objRS2("rVP") & "</td">
objRS2.MoveNext
Loop
End If
	
For i = 1 to AntalOmg()
	If
	Response.Write "<td>" & strVP & "</td>"
Next
```

Nu har jag strulat till det ordentligt... hur ska jag lösa det hela ?

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

## #9 — h0lger, 2003-01-09T15:25Z

```
Do while NOT objRS.EOF
	strImp = objRS2("rImp")
	strVP = "<td>" & objRS2("rVP") & "</td">
objRS2.MoveNext
```

För varje "rad" i recordsetet du itererar igenom skriver du över strVP

Gör så här

```
Set objRS2 = dbCom.Execute ("SELECT rImp, rVP, Omgang FROM tblResultat WHERE LagID = " & strLagID & " ")
Dim strImp, strVP, lngCount, aryOmg

redim aryOmg(0,0)

lngCount = 0
If objRS2.EOF Then
	strImp =	""
	strVP  = "<td>&nbps;</td>"
                aryOmg(0,0) = strImp
                aryOmg(1,0) = strVP
Else
Do while NOT objRS.EOF
          redim preserve aryOmg(2, lngCount)
	strImp = objRS2("rImp")
	srtVP = "<td>" & objRS2("rVP") & "</td">
                aryOmg(0,lngCount) = strImp
                aryOmg(1,lngCount) = strVP
                lngCount = lngCount + 1
objRS2.MoveNext
Loop
End If
	
For i = 0 to UBound(aryOmg, 2)
	strVP = aryOmg(1, i)
	Response.Write "<td>" & strVP & "</td>"
Next
```

Jag tror att detta skall fungera. Har dock inte testat det. 

Om du inte tycker att du får rätt svar så skicka med HELA koden och en beskrivning över vad du vill att koden skall göra. :)

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

## #10 — h0lger, 2003-01-09T15:27Z

Jag lyckas inte få min indentering att fungera ordentligt här på wF därför ser koden konstig ut. :)

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

## #11 — CatZ, 2003-01-09T15:30Z

Det vore iofs enklare om man kunde öppna som AdOpenDynamic... hur gör man det med Server.Execute ? Jag läste tidigare idag att det går med någon sifferkod.

För OM det går kan man placera deklarationen och själva variablen innan loopen, man får då oerhört mycket större böjligheter. Sedan får folk säga vad de vill om god programmering §e

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

## #12 — CatZ, 2003-01-09T15:38Z

tack för hjälpen h0lger!!! Det fungerar faktiskt.............

Kanske ska börja öppna med Open igen, Execute's riktiga prestanda vinst ligger ju i stored procedures när det gäller öppna?

```
Set objRS2 = dbCom.Execute ("SELECT rImp, rVP, Omgang FROM tblResultat WHERE LagID = " & strLagID & " ")
Dim strVP
For i = 1 to AntalOmg()
If objRS2.EOF Then
	strVP  = "<td>&nbps;</td>"
Else
	strVP = "<td>" & objRS2("rVP") & "</td>"
End If
Next
Do While NOT objRS2.EOF
	Response.Write strVP
objRS2.Movenext
Loop
```

Och helt plötsligt var det lite lättare....

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

## #13 — CatZ, 2003-01-09T19:48Z

Nu är jag där igen.... det är speciellt IF sats-saken som behöver pussas lite på

```
[red]Dim SQL2, objRS2	

SQL2 = " SELECT rVP FROM tblResultat WHERE LagID = " & strLagID & " "
Set objRS2 = dbCom.Execute(SQL2)
Dim strVP[/red]
[blue]Do While NOT objRS2.EOF
	If objRS2("rVP") = Empty Then
		strVP  = "<td>&nbps;</td>"
	ElseIf objRS2.EOF Then 		
		strVP  = "<td>&nbps;</td>"
	Else
		strVP = "<td>" & objRS2("rVP") & "</td>"	
	End If[/blue]
[red]	Response.Write strVP
objRS2.MoveNext
Loop[/red]
```

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

## #14 — h0lger, 2003-01-13T07:58Z

Denna raden kommer aldrig bli sann 

```
ElseIf objRS2.EOF Then
```

då Loopen avbryts när objRS.Eof.

Ta bort det villkoret och byt ut detta

```
If objRS2("rVP") = Empty Then
```

mot

```
If objRS2("rVP") = "" Then
```

Så skall det nog funka

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/64282-fastnat-vanlig-loop
