Tellen van met voorwaardelijke criteria gevonden records

Status
Niet open voor verdere reacties.

paweterings

Gebruiker
Lid geworden
9 feb 2014
Berichten
9
Ik heb een database gemaakt voor leerlingen van een vrijwillige taalbegeleidings groep.
Ik kan met een query middels voorwaardelijke criteria vinden welek leerlingen er in een bepaald tijdvak nieuw zijn binnengekomen door de startdatum te tellen:
Datum Start: >=[startdatum] And <=[eindatum].
Access geeft dan keurig de gevonden leerlingen weer. Voor het verslag wil ik deze leerlingen tellen, maar ik kan geen werkende formule vinden die met voorwaardelijke criteria gevonden records op kan tellem.
Weten jullie iets?
 
Tellen met voorwaardelijke criteria

De leerlingen in deze database hebben één record per leerling waar o.a. een veld staat met Startdatum en Einddatum.
Ik wil voor het jaarverslag weten hoeveel leerlingen er tussen 1 januari 2014 en 31 december 2014 gestart zijn en hoeveel er gestopt zijn in dat tijdvak.
Het is makkelijk een query te maken waarin de leerlingen staan die een startdatum hebben tussen 2 data door in de query in de kolom "Startdatum" bij criteria in te vullen ">=[startdatum] And <=[eindatum]". Als je de query start krijg je een pop-up schermpje waar je de startdatum invult en daarna een pop-up schermpje waar je de einddatum invult. Access zet dan alle leerlingen met een startdatum tussen die twee data in de query.
Het is mogelijk in Access records te tellen door in een query in de veldnaam in te vullen: "DCount("[Anaam]";"Leerling Q")". Access telt dan het aantal records.
Het probleem is die twee, op zichzelf eenvoudige, formules te combineren zodat Access eerst het aantal leerlingen tussen twee data zoekt, en daarna telt hoeveel dat er zijn.
Ik hoop dat het zo duidelijk is wat ik bedoel.
 
Nee, nog steeds niet duidelijk :). Met DCount ga je het overigens niet redden, en die functie heb je dus ook niet nodig. Herhalen van de vraag hoeft overigens ook niet, want dat is duidelijk genoeg. Ik had daarentegen wél graag antwoord op mijn vraag gehad :) En die luidt dus nog steeds: wat bedoel je met 'verslag'?
 
Tellen van voorwaardelijke queries

Met verslag bedoel ik een verslag. We sturen elk jaar een jaarverslag naar de gemeente met een financieel gedeelte en een gedeelte waarin staat wat we gedaan hebben: hoeveel leerlingen er in dat jaar bij zijn gekomen, hoeveel leerlingen er af zijn gegaan, het totaal aantal lesgevers en leerlingen, hoeveel leerlingen geslaagd zijn voor hun (inburgerings-)examen etc.
Al die getallen kan je geautomatiseerd in een rapport zetten mits je de juiste formule weet om het uit te rekenen. Met dcount rekent access b.v. uit hoeveel actieve leerlingen en lesgevers er zijn. Dat kan je in een rapport verwerken zodat automatisch de juiste aantallen in dat rapport staan. Nu moet ik een query maken om de leerlingen te vinden die dat jaar zijn gestart, op het scherm met de hand tellen hoeveel dat er zijn en dat in het rapportontwerp als tekst in het verslag zetten onder de automatisch gegenereerde totale aantallen.
 
Met verslag bedoel ik een verslag.
Access kent geen functie 'verslag'. Dus dat is nog steeds geen antwoord op de vraag. Gelukkig leg je nu wél uit wat je wilt:

Al die getallen kan je geautomatiseerd in een rapport zetten mits je de juiste formule weet om het uit te rekenen.
We hebben het dus, om de discussie niet nodeloos langer te maken, over een rapport. Je grijpt weer (en volkomen overbodig, zoals ik al had gezegd) naar de DCount functie, maar die doet hier echt niks. Je kunt je vraag simpel oplossen met de standaardfuncties die in een rapport zitten. Je rapport heb je vermoed ik gebaseerd op je query (die ik zou baseren op een formulier waarin je met de DatePicker datums selecteert, maar dat doet hier niet terzake) dus je hebt in de detailsectie het aantal records staan dat voldoet aan de queryvraag. In de voettekst van de detailsectie kun je de functie Aantal gebruiken om het aantal records te tellen.

Hopelijk snap je nu waarom ik zo doorvroeg over wat je wilt, want als je niet duidelijk maakt wat je aan het brouwen bent, kan ik geen goed antwoord geven. Wat voor jou volkomen duidelijk is, omdat je de db voor je neus hebt, is dat voor ons echt niet, want wij hebben de db niet.
 
Beste Michel,
Je zal inmiddels wel in de gaten hebben dat ik een volstrekte amateur ben met Access (ik ben niet voor niets vrijwilliger).
Ik heb geen idee wat je bedoelt met "detailsectie", of het een detailsectie betreft van de query of het rapport en of je het hebt over de voettekst van de query(???) of van het rapport.
De tellingen tot nu toe gaan geautomatiseerd: als ik het rapport open gebaseerd op de telquery past het rapport automatisch de getallen aan. Ik wil het rapport kunnen openen en alleen het tijdvak hoeven te openen waarover ik wil tellen.
Misschien wil ik gewoon te veel.
Ik heb vroeger een database geprogrammeerd in FoxBase. Daar kon je simpel met booleaanse logica dit soort vragen beantwoorden. FoxBase werkt helaas niet in Windows 8
Vandaar mijn worsteling met Access.
 
Access is (in mijn ogen) geen programma voor mensen die snelle resultaten willen. Je kunt het niet vergelijken met Word of Excel waarmee je gelijk aan de slag kunt en resultaat ziet. In Access moet je dus eerst voorwerk doen voordat je er überhaupt wat in kunt stoppen of uit kunt halen.
Jouw laatste opmerkingen duiden inderdaad op weinig kennis van Access, en ik raad je dus in ieder geval aan om je in Access te verdiepen, bijvoorbeeld met de Access cursus van HelpMij.
Queries hebben geen detailsectie, die vind je alleen in rapporten. In mijn antwoord heb ik het dus ook over de detailsectie van het rapport. Maar als je er niet uitkomt, is het een stuk handiger om de db mee te sturen.
 
tellen met voorwaarden

Beste Michel,
Dank voor je moeite.
Ik kan de database niet meesturen want ook als RAR-bestand is het te groot.
Ik blijf lekker worstelen. Ik heb inmiddels het detailvenster van het rapport ontdekt, en ook de functie "aantal". Nu nog het record Aantal in het rapport zien te krijgen!
 
In een rapport (zeker als hij zelf is gemaakt) staat de voettekst niet standaard aan, dus dat moet je eerst doen. Daarna kun je in de voettekst tekstvakken maken waar je dan de functie in zet.
Overigens wordt een db kleiner als je hem eerst comprimeert, en dan zipt. En we hoeven uiteraard niet alle records te zien; een paar is meer dan genoeg om de functionaliteit te kunnen bekijken.
 
Beste Michel,
Om het bestand klein genoeg te maken heb ik niet alleen het overgrote deel van de records in de tabellen gewist, maar moest ik ook veel queries en rapporten verwijderen.
Het kan dus zijn dat er foutmeldingen komen wegens nu foutieve verwijzingen.
De paginavoettekst van de rapport generator staat altijd aan bij mij in Access 2010.
Dank dat je er naar wilt kijken.
 

Bijlagen

Voor zo weinig records in de db, is hij belachelijk groot, en ook niet verder te comprimeren en hij zou, met het aantal gegevens, nog op een ouderwetste 5 1/4 floppy moeten passen :). Sla je afbeeldingen of bijlagen op in de db? Dan zou ik dat systeem echt aanpassen. Maar buiten dat: er mist inderdaad een query: BestuurTQ. Dus als je die (de SQL is genoeg) zou kunnen posten, dan kunnen we verder. Ik vermoed (zeg je ook niet) dat het om het rapport AantalBLLQR gaat?
 
De query:
SELECT BestuurT.B_Id, BestuurT.Voornaam, BestuurT.Tsvg, BestuurT.Achternaam, BestuurT.[E-mailadres], BestuurT.Telefoon, BestuurT.Mobiel, BestuurT.Adres, BestuurT.PKD, BestuurT.WPL, BestuurT.[Inact?]
FROM BestuurT
WHERE (((BestuurT.[Inact?])=False))
ORDER BY BestuurT.Achternaam;
Ik weet ook niet waarom de database zo groot is. Ik heb juist de bestanden in de records (intakeformulieren) verwijderd omdat de database toen 10x zo groot werd. Die staan nu in een aparte file.
Ben erg benieuwd wat je vindt.
In ieder geval vast dank
 
Nu nog de naam van het betreffende rapport, want ze laten nu allemaal hun data netjes zien.
 
AantalBLLQR
Hierin zijn alleen de aantallen geteld. Niet de voorwaardelijke tellingen
 
Dat kan ook niet met deze rijbron. Daar heb je andere gegevens voor nodig.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan