---
title: "Hjälp med For loop"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10107-hjälp-med-for-loop"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jörgen HP"
published: "2001-06-17T16:42:00.000Z"
updated: "2001-06-17T22:17:00.000Z"
replies: 10
views: 242
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/10107-hjälp-med-for-loop"
---

# Hjälp med For loop

## #1 — Jörgen HP, 2001-06-17T16:42Z

Tja WF!

Sitter och änrar alla mina loopar till mitt forum mot Getrows istället, det går ju fortare har det konstaterat. Har stött på klabberi om det inte finns några poster som matchar hämtningen.

```

<%
For I = 0 To UBound(arrSearch,2)

Username = arrSearch(0,I)
Ename = arrSearch(1,I)
Fname = arrSearch(2,I)
Profil = arrSearch(3,I)
Subject = arrSearch(4,I)
Comment = arrSearch(5,I)
MessId = arrSearch(6,I)
dteDate = arrSearch(7,I)

Dim color
Dim counter
counter = counter + 1
If counter Mod 2 = 0 then
color = "#d1d1a3"
Else
color = "#CACAA4"
End If

If I = UBound(arrSearch,2) Then Exit For

Response.Write "<tr bgcolor=""#CCCC99""><td bgcolor=""#d1d1a3"" colspan=""3""><p><font color=""#333333"" face=""verdana"" size=""-1"">Tyvärr, inga matchande inlägg</font></p></td></tr>"

Else
     
Response.Write "<tr bgcolor=""" & color & """>" & _
        
"<td width=""171""><p><font color=""#333333"" face=""verdana"" size=""-2"">" & _
"<strong><a href=""viewmsg.asp?MessId="&MessId&""">" & _
" " & Subject & "</a></strong></p></td><td width=""105""><p><font color=""#333333"" face=""verdana"" size=""-2"">" & Username & "</font></p></td> " & _
"<td width=""112""><p align=""center"">" & SweDateLong(dteDate) & "  </p></td>" & _
      "</tr>"

Next
End If

%>
```

Normalt skriver man ju If RS.EOF Then
Respnse.Write "Det fanns inga poster" men hur skriver man när man hämtar det i en array? Gjorde ett strongt försök ovan, men får felmess:

```

Microsoft VBScript compilation error '800a03fc' 

Expected 'Next' 

/login/forumsearch.asp, line 156 

Else
```

mvh Jörgen

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

## #2 — LarsG, 2001-06-17T16:59Z

Du kan väl först testa om rs.eof är falskt och enbart då anropa getrows, dvs

```
<%
If rs.eof then

Response.Write "<tr bgcolor=""#CCCC99""><td bgcolor=""#d1d1a3"" colspan=""3""><p><font color=""#333333"" face=""verdana"" size=""-1"">Tyvärr, inga matchande inlägg</font></p></td></tr>"

Else
arrSearch = rs.getrows()
For I = 0 To UBound(arrSearch,2)

Username = arrSearch(0,I)
Ename = arrSearch(1,I)
Fname = arrSearch(2,I)
Profil = arrSearch(3,I)
Subject = arrSearch(4,I)
Comment = arrSearch(5,I)
MessId = arrSearch(6,I)
dteDate = arrSearch(7,I)

Dim color
Dim counter
counter = counter + 1
If counter Mod 2 = 0 then
color = "#d1d1a3"
Else
color = "#CACAA4"
End If

Response.Write "<tr bgcolor=""" & color & """>" & _

"<td width=""171""><p><font color=""#333333"" face=""verdana"" size=""-2"">" & _
"<strong><a href=""viewmsg.asp?MessId="&MessId&""">" & _
" " & Subject & "</a></strong></p></td><td width=""105""><p><font color=""#333333"" face=""verdana"" size=""-2"">" & Username & "</font></p></td> " & _
"<td width=""112""><p align=""center"">" & SweDateLong(dteDate) & " </p></td>" & _
"</tr>"

Next
End If

%>
```

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

## #3 — jorgen, 2001-06-17T17:07Z

hmm, nu måste jag missat något. Anledningen till Getrows(), var väl att slippa skapa ett extra recset förutom det som finns i bakgrunden så att säga. Samt att kunna stänga kopplingen med databasen så fort som möjligt.
Har gjort så här nu:

```

strSQL = "SELECT p.req_Username, p.req_Ename, p.req_Fname, p.req_Profil, " & _
"d.Subject, d.Comment, d.MessId, d.Date " & _
"FROM Debatt d " & _
"INNER JOIN Profil p " & _
"on d.AnvId = p.AnvId " & _
"where req_Username Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Ename Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Fname Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Profil Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or Subject Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or Comment Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true "
strConn = "DSN="
Set objConn = Server.CreateObject("ADOdb.Connection")
objconn.Open strConn
arrSearch = objConn.Execute(strSQL).GetRows()
objConn.Close()
Set objConn = Nothing
```

Skapar jag ett recset också blir det väl lite kaka på kaka eller? Hur menar du att man bör göra?

mvh Jörgen

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

## #4 — jorgen, 2001-06-17T17:15Z

Har jag fattat rätt om jag skriver så här istället?

```

strConn = "DSN="

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open strConn
		
strSQL = "SELECT p.req_Username, p.req_Ename, p.req_Fname, p.req_Profil, " & _
"d.Subject, d.Comment, d.MessId, d.Date " & _
"FROM Debatt d " & _
"INNER JOIN Profil p " & _
"on d.AnvId = p.AnvId " & _
"where req_Username Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Ename Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Fname Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Profil Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or Subject Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or Comment Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true "

Set objRS = objConn.Execute(strSQL)

If Not objRS.EOF Then
				arrSearch = objRS.GetRows()
				
			End If
				
			objRS.Close
		Set objRS = Nothing
			
		objConn.Close
	Set objConn = Nothing

If objRS.EOF then
Response.Write "<tr bgcolor=""#CCCC99""><td bgcolor=""#d1d1a3"" colspan=""3""><p><font color=""#333333"" face=""verdana"" size=""-1"">Tyvärr, inga matchande inlägg</font></p></td></tr>"

Else
For I = 0 To UBound(arrSearch,2)

Username = arrSearch(0,I)
Ename = arrSearch(1,I)
Fname = arrSearch(2,I)
Profil = arrSearch(3,I)
Subject = arrSearch(4,I)
Comment = arrSearch(5,I)
MessId = arrSearch(6,I)
dteDate = arrSearch(7,I)

Dim color
Dim counter
counter = counter + 1
If counter Mod 2 = 0 then
color = "#d1d1a3"
Else
color = "#CACAA4"
End If

Response.Write "<tr bgcolor=""" & color & """>" & _

"<td width=""171""><p><font color=""#333333"" face=""verdana"" size=""-2"">" & _
"<strong><a href=""viewmsg.asp?MessId="&MessId&""">" & _
" " & Subject & "</a></strong></p></td><td width=""105""><p><font color=""#333333"" face=""verdana"" size=""-2"">" & Username & "</font></p></td> " & _
"<td width=""112""><p align=""center"">" & SweDateLong(dteDate) & " </p></td>" & _
"</tr>"

Next
End If
```

mvh Jörgen

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

## #5 — LarsG, 2001-06-17T17:27Z

Jo, även om du skriver

```
arrSearch = objConn.Execute(strSQL).GetRows()
```

så skapas ett recordset. Tidsvinsten med getrows ligger i att man ersätter de databasanrop, som movenext ger upphov till, med ett enda.

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

## #6 — jorgen, 2001-06-17T17:42Z

Okey, om jag skriver som i mitt första exempel:

```

arrSearch = objConn.Execute(strSQL).GetRows()
```

Var kommer RS in i bilden, jag måste ju skapa något som heter RS innan jag kan använda det.

mvh jörgen, som är mkt förvirrad just nu!

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

## #7 — LarsG, 2001-06-17T17:49Z

Om du skriver på det sättet så borde du kunna testa med

```
if ubound(searcharr,2) = 0 then
  'inga rader funna
else
for i = 0 to ubound(searcharr,2)
...
next
end if
```

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

## #8 — jorgen, 2001-06-17T17:55Z

Thanx! Nu hajar jag bättre :-)

mvh Jörgen

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

## #9 — jorgen, 2001-06-17T21:03Z

Hej!

Det blev inte riktigt bra, söker jag på ngt som inte finns får jag felmeddelandet:

ADODB.Recordset.1 error '800a0bcd' 

Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record. 

/login/forumsearch.asp, line 26 

Rad 26 är denna:

arrSearch = objConn.Execute(strSQL).GetRows()

mvh Jörgen

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

## #10 — LarsG, 2001-06-17T21:57Z

Det verkar som om getrows inte fungerar på ett tomt recordset. Du får nog dela upp det i separata anrop (som i mitt första förslag).

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

## #11 — jorgen, 2001-06-17T22:17Z

Hej igen...

Skrev så här och det funkar, är det något i denna koden jag kan förändra till det bättre? Vill nämligen lära mig korrekt nu och lämna webstudiokod bakom mig \*flin\*

mvh Jörgen

```

strSQL = "SELECT p.req_Username, p.req_Ename, p.req_Fname, p.req_Profil, " & _
"d.Subject, d.Comment, d.MessId, d.Date " & _
"FROM Debatt d " & _
"INNER JOIN Profil p " & _
"on d.AnvId = p.AnvId " & _
"where req_Username Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Ename Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Fname Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or req_Profil Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or Subject Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true " & _
"or Comment Like '%" & FixaTecken(Request.form("keyword")) & "%' and orgthread=true "
strConn = "DSN="
Set objConn = Server.CreateObject("ADOdb.Connection")
objconn.Open strConn
set rs = objConn.Execute(strSQL)

If rs.eof then
Response.Write "<tr bgcolor=""#CCCC99""><td bgcolor=""#d1d1a3"" colspan=""3""><p><font color=""#333333"" face=""verdana"" size=""-1"">Tyvärr, inga matchande inlägg</font></p></td></tr>"

Else
arrSearch = rs.getrows()

objConn.Close()
Set objConn = Nothing

For I = 0 To UBound(arrSearch,2)

Username = arrSearch(0,I)
Ename = arrSearch(1,I)
Fname = arrSearch(2,I)
Profil = arrSearch(3,I)
Subject = arrSearch(4,I)
Comment = arrSearch(5,I)
MessId = arrSearch(6,I)
dteDate = arrSearch(7,I)

Dim color
Dim counter
counter = counter + 1
If counter Mod 2 = 0 then
color = "#d1d1a3"
Else
color = "#CACAA4"
End If

Response.Write "<tr bgcolor=""" & color & """>" & _

"<td width=""171""><p><font color=""#333333"" face=""verdana"" size=""-2"">" & _
"<strong><a href=""viewmsg.asp?MessId="&MessId&""">" & _
" " & Subject & "</a></strong></p></td><td width=""105""><p><font color=""#333333"" face=""verdana"" size=""-2"">" & Username & "</font></p></td> " & _
"<td width=""112""><p align=""center"">" & SweDateLong(dteDate) & " </p></td>" & _
"</tr>"

Next
End If
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/10107-hjälp-med-for-loop
