---
title: "eof eller bof fel?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/73043-eof-eller-bof-fel"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "clacke"
published: "2003-04-03T12:41:20.000Z"
updated: "2003-04-04T16:42:52.000Z"
replies: 13
views: 318
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/73043-eof-eller-bof-fel"
---

# eof eller bof fel?

## #1 — clacke, 2003-04-03T12:41Z

Jag selecterar ut på vanligt sätt och om den är true så visas ju det jag selectade med om värdet är false så får jag ett eof och bof felmedelande. Ändå så har jag satt min accessdatabas att den inte behöver ha ett värde, varför är det så?
Om det inte värdet finns så ska ju inget hända? Eller?

```
söksträngen:
	sql = "SELECT * FROM persons p,units u ,areas a where p.unit_id ="& unit &" and p.area_id = "& area &" and p.unit_id=u.unit_id and p.area_id=a.area_id;"
	set rs = conn.Execute (sql)

och felmeddelandet:
Error Type:
ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
```

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

## #2 — OveRRidE, 2003-04-03T12:44Z

```
sql = "SELECT * FROM persons p,units u ,areas a where p.unit_id ="& unit &" and p.area_id = "& area &" and p.unit_id=u.unit_id and p.area_id=a.area_id;"
set rs = conn.Execute (sql)

[b]if not rs.eof then[/b]
   do until rs.eof
      'gör nåt
   rs.movenext
   loop
[b]else[/b]
   response.write "Inga poster att visa."
[b]end if[/b]
```

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

## #3 — @nders, 2003-04-03T12:45Z

Innan du försöker skriva ut något från recordsetet måste du kontrollera att inte recordsetet är tomt.

```
If not rs.EOF then
 ' Do your thang!
else
 ' Nää, tomt :(
End if
```

Mvh

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

## #4 — voigtann1, 2003-04-03T12:47Z

Varför inte bara skriva

```
if rs.eof then
'*snyft*
else
'*yey*
end if
```

???

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

## #5 — OveRRidE, 2003-04-03T12:52Z

Du är *låångt* efter voigtann. :e ;)

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

## #6 — voigtann1, 2003-04-03T12:53Z

nej men nu får du förklara :e :(

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

## #7 — OveRRidE, 2003-04-03T12:56Z

> **voigtann1 skrev:**
>
> nej men nu får du förklara :e :(

Du får hänga lite mer på F5, om man säger så. ;)

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

## #8 — voigtann1, 2003-04-03T13:03Z

nej men ni kör ju "if NOT rs.eof" varför?

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

## #9 — m_soderlund, 2003-04-03T13:03Z

Hm, man måste ju stänga objekt också oavsett om databasen är tom eller ej.

```
If Rs.EOF Then
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
Response.Write "Det finns inget i databasen än.."
Else
'kör all kod
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
End If
```

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

## #10 — voigtann1, 2003-04-03T13:05Z

```
If Rs.EOF Then
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
Response.Write "Det finns inget i databasen än.."
Else
'kör all kod
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
End If
```

är det inte enklare:

```
If Rs.EOF Then
Response.Write "Det finns inget i databasen än.."
Else
'kör all kod
End If
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
```

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

## #11 — OveRRidE, 2003-04-03T13:07Z

> **voigtann1 skrev:**
>
> nej men ni kör ju "if NOT rs.eof" varför?

Om du tittar på koden så är det egentligen exakt samma, bara det att @nders och min är bakochframvänd, jämfört med din. 

> Hm, man måste ju stänga objekt också oavsett om databasen är tom eller ej.

Varför göra på det sättet då?

Följande fungerar alldeles utmärkt. Det är när man håller på med multipla response.redirects som man måste tänka så, här skriver vi bara ut datat innan den går ur if-satsen och sen vidare neråt. 

```
sql = "SELECT * FROM persons p,units u ,areas a where p.unit_id ="& unit &" and p.area_id = "& area &" and p.unit_id=u.unit_id and p.area_id=a.area_id;"
set rs = conn.Execute (sql)

if not rs.eof then
   do until rs.eof
      'gör nåt
   rs.movenext
   loop
else
   response.write "Inga poster att visa."
end if

rs.close
set rs = nothing
conn.close
set conn = nothing
```

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

## #12 — clacke, 2003-04-04T13:02Z

Ytterligare en dum? fråga!
Ni stänger ner 
"rs.close
set rs = nothing" men jag undrar om det inte räcker att man stänger conn?:
"conn.close
set conn = nothing"

Måste man ha med båda?

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

## #13 — voigtann1, 2003-04-04T13:49Z

Inte en dum fråga faktist...
variablen rs är ju öppen ändå.. den sluta inte existera bara för att du stänger conn.. någon annan som kan formulera sig bättre kommer nog svara här :e

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

## #14 — clacke, 2003-04-04T16:42Z

Tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/73043-eof-eller-bof-fel
