---
title: "Räkna poster fel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/104233-räkna-poster-fel"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Thompa__85"
published: "2004-05-24T13:30:27.000Z"
updated: "2004-05-24T20:16:53.000Z"
replies: 14
views: 409
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/104233-räkna-poster-fel"
---

# Räkna poster fel

## #1 — Thompa__85, 2004-05-24T13:30Z

Hejsan! 
Har problem att få mitt "räkna-poster" script att fungera med MySQL..

```
SQL="SELECT COUNT(mail_id) AS Antal, intTillid, intLast FROM mail WHERE intTillid = " & Session("id") & " AND intLast=0"
Set RS2=Server.CreateObject("ADODB.Recordset")
RS2.open SQL, Connect, 3,3
```

Men får felmesset:
Microsoft OLE DB Provider for ODBC Drivers error '80040e21' 

ODBC driver does not support the requested properties. 

/top.asp, line 25 

Och skriver jag ut SQL så blir de:
SQL: SELECT COUNT(mail_id) AS Antal, intTillid, intLast FROM mail WHERE intTillid = 1 AND intLast=0

Hur ska jag få det att fungera??

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

## #2 — Engine^, 2004-05-24T13:45Z

ODBC stödjer inte *adOpenKeyset* eller *adLockOptimistic*? Prova att ändra i din connectionstring till

```
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[i]C:\databas.mdb[/i]"
```

Eller byt till

```
RS2.Open SQL, Connect
```

Då öppnas recordset:et forwardonly och readonly och det bör ju fungera.

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

## #3 — LarsG, 2004-05-24T13:45Z

ange 

option=16384

i din connection-sträng

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

## #4 — Thompa__85, 2004-05-24T13:58Z

> **Engine^ skrev:**
>
> ODBC stödjer inte *adOpenKeyset* eller *adLockOptimistic*? Prova att ändra i din connectionstring till
>
> ```
> "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[i]C:\databas.mdb[/i]"
> ```
>
> Eller byt till
>
> ```
> RS2.Open SQL, Connect
> ```
>
> Då öppnas recordset:et forwardonly och readonly och det bör ju fungera.

Det första kan jag inte, eftersom jag jobbar mot en MySQL databas.

Men testade det andra, och fick detta felmess:
Microsoft OLE DB Provider for ODBC Drivers error '80004005' 

\[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-4.0.18-nt\]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause 

/top.asp, line 25 

??

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

## #5 — Engine^, 2004-05-24T14:03Z

Aha...

```
SQL = "SELECT COUNT(mail_id) AS Antal, intTillid, intLast FROM mail " & _
      "WHERE intTillid = " & Session("id") & " AND intLast=0 " & _
      "GROUP BY intTillid, intLast"
```

Det kanske kan hjälpa till.

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

## #6 — LarsG, 2004-05-24T14:03Z

Ja just det. Ta bort  intTillid, intLast från select-listan.

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

## #7 — Thompa__85, 2004-05-24T14:07Z

> **Engine^ skrev:**
>
> Aha...
>
> ```
> SQL = "SELECT COUNT(mail_id) AS Antal, intTillid, intLast FROM mail " & _
>       "WHERE intTillid = " & Session("id") & " AND intLast=0 " & _
>       "GROUP BY intTillid, intLast"
> ```
>
> Det kanske kan hjälpa till.

Sådär, inga felmess!
men skriver ut det så här:
\<%=Antal%\>

Men den skriver inte ut något :/

Så här skrivs sql´n ut:
SQL: SELECT COUNT(mail_id) AS Antal, intTillid, intLast FROM mail WHERE intTillid = 1 AND intLast=0 GROUP BY intTillid, intLast

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

## #8 — LarsG, 2004-05-24T14:52Z

```
SQL = "SELECT COUNT(mail_id) AS Antal FROM mail WHERE intTillid = 1 AND intLast=0 "
set rs = connect.execute(sql)
response.write rs("antal")
```

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

## #9 — Thompa__85, 2004-05-24T15:03Z

Men, testade samma kod på en annan sida:

```
SQL = "SELECT COUNT(id) AS Antal,user, kon, alder, loggain, id, intFoto FROM anv WHERE intFoto = 1 ORDER BY loggain desc"
Set RS = Connect.Execute(SQL)
```

Men får:
Microsoft OLE DB Provider for ODBC Drivers error '80004005' 

\[MySQL\]\[ODBC 3.51 Driver\]\[mysqld-4.0.18-nt\]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause 

/main.asp, line 142

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

## #10 — LarsG, 2004-05-24T15:19Z

Vadå samma kod?

Samma typ av fel i alla fall.

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

## #11 — Thompa__85, 2004-05-24T15:22Z

> **LarsG skrev:**
>
> Vadå samma kod?
> 
> Samma typ av fel i alla fall.

Oj, menade samma sätt att räkna poster, på en annan SQL-sats!
Men har pillat lite.. och fått den att säga:
ADODB.Field error '80020009' 

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. 

/main.asp, line 0 

Och så här ser min SQL-sats ut:

```
SQL = "SELECT COUNT(id) AS Antal, user, kon, alder, loggain, id, intFoto FROM anv WHERE intFoto = 1 GROUP BY loggain DESC"
Set RS = Connect.Execute(SQL)
```

Och det är när jag skriver ut som jag får felmesset! \<%=rs("Antal")%\>

:(

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

## #12 — Jesper T, 2004-05-24T15:30Z

Finns det något där då?

```
if not RS.EOF then
Response.write rs("Antal")
else
Response.write "Här var´e tomt!"
end if
```

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

## #13 — LarsG, 2004-05-24T15:35Z

Din group by är helt fel. Alla kolumner i select-listan som inte är med i en aggregatfunktion måste vara med i group by.

```
SQL = "SELECT COUNT(id) AS Antal, user, kon, alder, loggain, id, intFoto FROM anv WHERE intFoto = 1 GROUP BY user, kon, alder, loggain, id, intFoto DESC"
Set RS = Connect.Execute(SQL)
```

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

## #14 — Thompa__85, 2004-05-24T15:55Z

> **LarsG skrev:**
>
> Din group by är helt fel. Alla kolumner i select-listan som inte är med i en aggregatfunktion måste vara med i group by.
> 
>
>
> ```
> SQL = "SELECT COUNT(id) AS Antal, user, kon, alder, loggain, id, intFoto FROM anv WHERE intFoto = 1 GROUP BY user, kon, alder, loggain, id, intFoto DESC"
> Set RS = Connect.Execute(SQL)
> ```

Okej, fixat de, men samma fel. Fixade Jesper T´s kod, och då skriver den ut Här va de tomt..
Men asså jag vet ju att det finns poster, eftersom den skriver ut dom några rader upp :/

Skickar med ett txt dokument på dom rörande koderna så får ni se! Tack på förhand!

Bilagor:

- [kod.txt](https://www.webforum.nu/a/3601.txt)

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

## #15 — Thompa__85, 2004-05-24T20:16Z

Fixat! Tack vare Ampy ;)

```
<%
rs.movefirst
Response.write rs("Antal")
%>
```

Ampy:
eftersom du har loopat igenom hela recordsetet finns det ingen rad/post kvar, därför kunde du inte skriva ut antal, vad movefirst gör är att den hoppar tillbaka till första steget så då kan du skriva ut antalet

Tack ampy!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/104233-räkna-poster-fel
