Query - GroupBy werkt niet

Status
Niet open voor verdere reacties.

Tvhouwel

Gebruiker
Lid geworden
2 apr 2002
Berichten
258
Ik heb 2 tabellen, Archief en Persoon.
In beide tabellen komt een veld GebDatum voor met identieke eigenschappen.
Als ik een query maak met daarin de volgende expressie

Leeftijd: IIf(Format(Date()-DateValue([GebDatum]);"yy")>17;"volwassen";"jeugd")

Dan werkt dat op beide tabellen prima.
Zodra ik echter de GroupBy functie aanzet werkt dat bij een query op de tabel Persoon prima, maar bij een query op de tabel Archief geeft dat de volgende foutmelding
"Gegevenstypen komen niet overeen in criteriumexpressie"

Ik heb de gegevens typen van beide tabellen eindeloos nagekeken, kan geen verschillen vinden. Ik heb nieuwe kale query's gemaakt met alleen bovenstaande gegevens erin gekopieerd, verder geen velden toegevoegd, op de ene tabel werkt het wel en op de andere niet.

Iemand enig idee wat hier aan de hand kan zijn ?
 
Staan de velden van de tabel zelf op "DATE" of "STRING"? Je weet zeker dat er in "archief" geen entry is die niet is ingevuld (leeg)?

Hoewel het moelijk is te zien waar het vandaan komt is er blijkbaar ergens een entry die niet te herleiden is tot het type "datum".
 
Ik vind je berekening niet helemaal geweldig; ik zou het zo doen:
Code:
   Leeftijd:IIf(DateDiff("yyyy"; [GebDatum]; Date()) + CInt(Format(Date(); "mmdd") < Format([GebDatum]; "mmdd"))>17;"volwassen";"jeugd")
Maar ik denk niet dat dit je probleem gaat oplossen.
Zonder de db te zien, is er helaas niets van te zeggen. Je geeft aan dat de tabellen identiek zijn (qua datumveld) dus dan ben ik snel uitgekakt.
 
Ik vind je berekening niet helemaal geweldig; ik zou het zo doen:
Code:
   Leeftijd:IIf(DateDiff("yyyy"; [GebDatum]; Date()) + CInt(Format(Date(); "mmdd") < Format([GebDatum]; "mmdd"))>17;"volwassen";"jeugd")
......

Daar ga ik nog even naar kijken. Bedankt voor je antwoord.
 
Hoe simpel kan het zijn, dat was de oorzaak, 2 lege velden gevonden. Bedankt !!

Het was de enige "logische" verklaring die ik kon bedenken. Helaas zal voor veel mensen de link niet zo snel gelegt worden. Veel dataproducten houden er helaas nogal obscure regels op na, en nog obscuurdere errors die je daar uit kan krijgen.
 
Je kunt, als je lege waarden in het veld toestaat (wat ik dus nooit zou doen in dit geval) dat nog zo ondervangen:
Code:
Leeftijd:IIf(DateDiff("yyyy"; Nz([GebDatum];DateSerial(Year(Date());Month(Date());1); Date()) + CInt(Format(Date(); "mmdd") < Format(Nz([GebDatum];DateSerial(Year(Date());Month(Date());1; "mmdd"))>17;"volwassen";"jeugd")
Dan bereken je in ieder geval altijd met een datum en krijg je geen foutmelding meer.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan