---
title: "Msg beroende på om poster finns?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21534-msg-beroende-på-om-poster-finns"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "CokeLight"
published: "2001-08-03T05:11:00.000Z"
updated: "2001-08-03T08:58:00.000Z"
replies: 5
views: 178
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/databaser-sql/21534-msg-beroende-på-om-poster-finns"
---

# Msg beroende på om poster finns?

## #1 — CokeLight, 2001-08-03T05:11Z

Hejsan allihopa :)

Jag har en vanlig SQL-select (mot Access 2000). Nu vill jag göra en sak om WHERE-villkoret uppfylls (dvs poster loopas fram) och en annan om inga poster hittas.

Provade lite olika:

```
if rs.eof then
```

hjälper ju inte eftersom SELECTEN blir ju EOF hur som helst.

sen tänkte jag att om count(\*)=0 så får jag ju det jag vill, men istället får jag felmeddelande:

```
SELECT COUNT(*), kol1, kol2 FROM tblX WHERE.. ORDER BY etc

Felmsg:
You tried to execute a query that does not include the specified expression 'kol1' as part of an aggregate function
```

Om jag tar bort "kol1" så klagar den på "kol2" osv. Varför då? :) 

Ännu bättre nästan om nån dessutom vet om det finns något SQL-nyckelord för att kolla om poster finns? 

Har för mig att när jag körde stored proc. gick det bra att sätta en flagga som returnerade true/false t.ex men jag vet inte hur man gör det med Access queries. Förslag...? :)

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

## #2 — LarsG, 2001-08-03T08:01Z

Jag förstår inte vad du menar när du säger att rs.eof inte fungerar?

```

sql = "select * from ogrish where aleb > 12"
set rs = connect.execute(sql)

if rs.eof then
'inga poster
else
while not rs.eof 
'hantera data
rs.movenext
wend
end if
```

skulle jag skriva.

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

## #3 — LarsG, 2001-08-03T08:04Z

Att du får fel när du lägger count(\*) beror på att man inte kan blanda aggregatfunktioner (sum,max etc) med kolumneferenser om man inte har en group by.

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

## #4 — CokeLight, 2001-08-03T08:33Z

ehm, jo, det stämmer faktiskt.. jag hade ju en sån konstruktion redan kom jag på, men fick för mig att skriva en ny IF rs.eof någon annanstans.. bland HTML:n (i onödan) tackar ! :)

Jaha ja... hmm.. ang. count, om man inte kan blanda kol.ref/aggregate func. får man köra separata SQL-satser då, eller..? En där man plockar ut data, o en som man har för att räkna poster..?

Tack för hjälpen igen :)

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

## #5 — LarsG, 2001-08-03T08:48Z

Njae, du behöver inte skriva två satser. Ett alternativ är att skriva

```

select aleb,caleb,(select count(*) from ogrish where aleb > 12) as antal from ogrish where aleb > 12
```

och då får man ut antalet värden med rs("antal") om det finns några poster.

Man kan också använda metoden getrows

```
set rs = connect.execute(sql)
if not rs.eof then
arr = rs.getrows()
antal = ubound(arr) + 1
for i = 0 to ubound(arr,2)
'presentera data från arr
next
```

getrows returnerar en två-dimensionell array med allt data. Det är effektivare att använda, då man gör färre anrop till databashanteraren.

Det här har diskuterats ganska mycket i ASP-forumet, så om du gör en sökning där så ´hittar du fler exempel.

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

## #6 — CokeLight, 2001-08-03T08:58Z

Aha, på det viset.. intressant.. jo, getRows har jag sett inlägg om men inte provat.. 

Tackar, då ska jag läsa o experimentera lite :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21534-msg-beroende-på-om-poster-finns
