[Access / SQL] Aantal records tellen dat een query oplevert.

Pagina: 1
Acties:
  • 302 views sinds 30-01-2008
  • Reageer

  • Sergis WM
  • Registratie: Juli 2004
  • Laatst online: 21-02-2023
Ik heb een formulier gemaakt op basis van een query

SELECT tralala FROM jajaja WHERE (((tralala) Like "*" & [zoekwoord] & "*"));

Deze zoekfunctie werkt als er records gevonden worden. Als er geen records gevonden worden die voldoen aan de query dan wordt het lege formulier geopend. Dat wil ik niet. Ik wil dat er dan een messagebox verschijnt met "Niks gevonden" en dat ik dan weer terugkeer naar de beginsituatie of eventueel een andere actie kan uitvoeren. Dus

if resultaat van query = 0 then MsgBox

Nu heb ik al geexperimenteerd met SELECT Count(*) echter zonder succes. Volgens mij omdat de uitvoer van een query niet echt een tabel is waar SQL dat wel verwacht.
Hoe los ik dit op? Moet ik de uitvoer van de query in een tijdelijke tabel stoppen en hem daarna met Count(*) uitlezen of is er een andere betere manier?

Ik ben nu al een tijdje met m'n database bezig en de vorderingen volgen gestaag. Sommige, naar later blijkt simpele, oplossingen zijn echter niet te vinden via Help of MSDN. Volgens mij is dit echt simpel te doen... het lukt me alleen niet :?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Volgens mij kun je het aantal resultaten in VBA wel opvragen. In VBScript doe je dat bij mijn weten door de Count method van je recordset te gebruiken, dus RecordSet.Count. Ik neem aan dat dit in VBA niet al te anders is.
Ook kun je in je query zoiets doen:
code:
1
2
3
SELECT tralala, (
  SELECT tralala FROM jajaja WHERE (((tralala) Like "*" & [zoekwoord] & "*"))
) AS aantal FROM jajaja WHERE (((tralala) Like "*" & [zoekwoord] & "*"));

Volgens mij krijg je dan in elk record eenzelfde getal terug.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.