[Access / ASP] Count, lege waardes vervangen

Pagina: 1
Acties:

  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 24-07 13:40
D.m.v. de volgende Query, maak ik een rapportage die het aantal telt, m.b.v. de functie Count:

code:
1
2
3
4
SELECT Count(Winnaars.ID) AS AantalVanID, Winnaars.Prijs_ID
FROM Winnaars
GROUP BY Winnaars.Prijs_ID
HAVING (((Winnaars.Prijs_ID)=3));


D.m.v. een Select * presenteer ik de info in een ASP pagina.

Echter als er geen uitkomst is krijg ik een error: ADODB.Field (0x80020009)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

Nu heb ik al overal gezocht en zie verscheidene keren de functie (Nz) om dit te omzeilen.

Hoe kan ik die hierin toepassen? Of moet ik iets anders bedenken?

Pay peanuts get monkeys !


  • Coolhva
  • Registratie: Juni 2003
  • Laatst online: 02-08 09:32

Coolhva

Dr. Zero Trust

Zodra je in de pagina (ASP) probeert gegevens uit te lezen van je query, en deze is leeg, dan krijg je idd een error.

Ergens in je pagina (na je query) staat iets als rsRecordSet.Fields.Item("AantalVanIs").Value

zet voor daarvoor de regel:

If NOT rsRecordSet.EOF Then

En als je geen info meer ophaalt moet je natuurlijk ook END IF neerzetten.

edit:

even ter verduideling, de EOF functie staat voor End Of File. Als de recordset NIET leeg is dan voert hij deze functie uit. Als je wilt kan je ook nog ELSE toevoegen zodat je wat te zien krijgt als er geen info is uit de database.

[ Voor 28% gewijzigd door Coolhva op 16-06-2003 09:40 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

ASP:
1
2
3
4
5
If not RSRecordsetnaam.EOF THEN
    ' We hebben een resultaat
Else
    ' We hebben geen resultaat
End if

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Check hit 1 van Google eens? :?

Professionele website nodig?


  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 23:00
ASP:
1
2
3
4
if( !Recordset.EOF ) 
{ weergeven data }
else 
{ response.write("geen waardes gevonden"); }

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 24-07 13:40
Ja, deze methode snap ik. :)

Echter ik heb een stuk of 25 van deze Counts op 1 pagina, om een rapportage samen te stellen. Is er dan geen snellere methode, i.p.v. iedere select aan te passen ?

Pay peanuts get monkeys !


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Dutch_guy schreef op 16 June 2003 @ 09:41:
Ja, deze methode snap ik. :)

Echter ik heb een stuk of 25 van deze Counts op 1 pagina, om een rapportage samen te stellen. Is er dan geen snellere methode, i.p.v. iedere select aan te passen ?
Waar zie jij dat je je selectstatement moet aanpassen?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 24-07 13:40
Bovenstaande opties had ik overigens al geprobeerd, echter als ik het volgende doe (wat normaal gesproken altijd werkt:

code:
1
2
3
4
5
6
7
<%
If Not rsVerkeerdLot.EOF Then 
        Response.Write rsVerkeerdLot("AantalVanID")
Else
    Response.Write("N")
End If
%>


Dan krijg ik de volgende foutmelding:

(0x80020009)
Er is een uitzondering opgetreden.

Het lijkt wel alsof dit niet werkt in combinatie met de functie COUNT.

[ Voor 5% gewijzigd door Dutch_guy op 16-06-2003 10:13 ]

Pay peanuts get monkeys !


  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 24-07 13:40
Probleem opgelost.

Query in Access aangepast met IIF:

code:
1
2
3
SELECT Count(IIf(IsNull([Winnaars.ID]),0,[Winnaars.ID])) AS AantalvanID
FROM Winnaars
HAVING (((Winnaars.Status_ID)=8));

Pay peanuts get monkeys !

Pagina: 1