aantal lege velden tellen

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.682
beste,
Volgend probleem:

Ik krijg een lijst van prestaties op een bepaalde dag
Sommige werden uitbetaald, anderen niet

Ik maak een veld aan waarin ik het aantal, niet-uitbetaalde prestaties, wil optellen
In "Besturingselementbron) schrijf ik =Aantal(Empty([uitbetalingsdatum])=Waar)
Dit levert niets op

In een ander veld schrijf ik: =Aantal([id])
Wat een correct getal oplevert

Wat is er fout met mijn syntax

Bedankt
 
Wat is er fout met mijn syntax
Ik zou zeggen: levert de foute uitkomst op :). Waarom wil je een foute (ingewikkelde) formule gebruiken in plaats van een simpele juiste? Als je foute uitkomsten wilt, kan ik er nog wel een paar verzinnen :d.
 
Ik heb deze ‘techniek’ zo nooit gebruikt, en zou ook niet weten waarom je dat zo zou doen. Die foutmelding komt omdat je de verkeerde functie gebruikt. :)
 
simpel toch...
Ik wil uit de lijst die ik zie, het aantal lijnen optellen waarvoor geen datum van uitbetaling voorkomt, dus , waar DAT veld leeg is
Alles tellen lukt, maar DAT tellen dus niet
 
Als je Aantal(Empty([uitbetalingsdatum])=Waar) gebruikt, krijg je inderdaad een foutmelding, want je kunt deze functie niet gebruiken voor wat jij wilt. Die werkt niet op een datumveld. Kijk eens naar deze formules:
PHP:
=Aantal(IsEmpty([uitbetalingsdatum]))
Geeft hetzelfde als:
PHP:
=Aantal([uitbetalingsdatum])
En
PHP:
=Som(IsEmpty([uitbetalingsdatum]))
Geeft de waarde 0. Ergo: een datumveld is nooit 'Empty'. En IsEmpty zal dus nooit Waar opleveren of Onwaar. Niet doen. Je moet sowieso geen functie AANTAL gebruiken, maar SOM. En wel zo:
PHP:
=Som(IIf([uitbetalingsdatum] Is Null;1;0))
 
Of nog simpeler: als je alleen het aantal lege uitbetalingsvelden wil maak je een query met is null als criterium en het aantal resultaten als resultaat:
Code:
select count([ID]) from MyTable where [uitbetalingsdatum] is null


Dat werkt een pak sneller dan met een Iif functie.
 
Dat werkt een pak sneller dan met een Iif functie.
Welnee, dat merk je echt niet. Bovendien heeft JP het over een tekstvak op een formulier. En dan heb je het dus over een uitgebreidere dataset.
 
Als de snelheid niet veel uitmaakt kan je in een tekstvak op een formulier ook de DCount functie gebruiken
 
Waarvan de syntax weer een stuk ingewikkelder is. Hou het simpel. Het leven (en Access) is al moeilijk genoeg :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan