Filter maken?

Status
Niet open voor verdere reacties.

Busselw

Gebruiker
Lid geworden
20 feb 2017
Berichten
16
Hallo Allemaal,

Wij werken in een acces database waarbij wij onze werknemers en en klanten invoeren. Iedere 4 weken krijgen wij van onze werknemers urenbriefjes welke ingevoerd worden in een tabel(forumulier). Iedere klant is gekoppeld aan een werknemer. Nu heb ik de volgende vraag:

Aangezien de aantal klanten en werknemers groeien, wil ik het volgende filter kunnen maken.
Als ik al de uren heb ingevoerd wil ik graag kunnen zien welke werknemers(met gekoppelde klanten) hun urenbriefjes nog niet hebben ingevuld. Zodat ik deze werknemers een bericht kan sturen dat wij deze briefjes nodig hebben.

Ik heb de volgende tabellen(forumulieren):
Werknemers
Klanten (in dit tabel zoek ik de werknemer op die hieraan gekoppeld is)
Uren_opvoeren (hier kies ik een klant, de werknemer die daarbij hoort en het aantal uren dat is er is gewerkt)

Als er nog meer informatie nodig is dan hoor ik het graag!

Mvg,

Wil
 
Lijkt mij dat je met een eenvoudige query die data wel uit de tabel moet kunnen trekken. Als je een query maakt met deze tabellen, en je maakt een Outer Join van de tabel [Klanten] naar [Uren_opvoeren] dan kun je op het datumveld wel controleren welke werknemers nog geen briefje hebben ingevoerd. Dan ga ik er voor het gemak even vanuit dat je een datumveld gebruikt om de periodes te noteren. Dat kan natuurlijk ook een ander veld zijn, zoals de combi [Jaar]+[Maand]. Aangezien je de gegevens maandelijks verzamelt.
 
Lijkt mij dat je met een eenvoudige query die data wel uit de tabel moet kunnen trekken. Als je een query maakt met deze tabellen, en je maakt een Outer Join van de tabel [Klanten] naar [Uren_opvoeren] dan kun je op het datumveld wel controleren welke werknemers nog geen briefje hebben ingevoerd. Dan ga ik er voor het gemak even vanuit dat je een datumveld gebruikt om de periodes te noteren. Dat kan natuurlijk ook een ander veld zijn, zoals de combi [Jaar]+[Maand]. Aangezien je de gegevens maandelijks verzamelt.

Bedankt voor je reactie Octafish,

Ik heb inderdaad al ooit liggen stoeien met deze query, alleen nu wil dus alleen de klanten zien welke nog niet zijn ingevoerd in de tbl uren_opvoeren, voor een bepaalde periode welke ik ook invul bij deze tb_urenopvoeren. Welke criteria zou ik hiervoor kunnen gebruiken?
 
Gelijk maar een newbie foutje bij je weghalen (het schijnt contractueel te zijn vastgelegd dat elke nieuwe forumgebruiker het moet doen ;) ): de QUOTE knop is géén antwoordknop. Daarvoor heb je het (veel mooiere) tekstvak <Snel reageren>. Dus graag gelijk afleren :).
Queries die je maakt zijn doorgaans gebaseerd op gelijke relaties; je wilt alleen klanten zien die een order hebben bijvoorbeeld. Dus de klant (die bestaat) moet dan een record hebben in Orders. Wil je klanten zien die geen order hebben, dan moet je een kleine truc toepassen: je moet de relatie tussen de tabellen veranderen. Dat doe je door op de relatielijn te dubbelklikken. Je krijgt dan 3 opties die je kunt kiezen, waarvan optie 1 dan gebruikt is. In jouw geval wil je dan Alle records zien uit [Klanten], en de gerelateerde records uit [Uren_opvoeren]. Dat is ofwel optie 2, ofwel optie 3. Je kunt straffeloos wisselen als je per ongeluk de verkeerde hebt gebruikt. Dan herhaal je dus het dubbelklikken.

Als je de goede variant hebt, zie je alle klanten, en per klant de gekoppelde uren. Of, als de uren niet zijn ingevuld, is dat veld leeg. En die laatste variant moet je dan uitfilteren. Het veld waarop je dat wilt zien, krijgt dan het criteirum Is Null. En dan voer je de query uit.
 
bedankt voor de tip !

Ik ga ermee aan de slag. Eens proberen of ik eruit kom!
 
Ik nog steeds een vraag.
Tijdens het invoeren van de uren kies ik een periode. In de tabel staan dus meerdere keren bepaalde klanten, maar met een andere periode.
Als ik dan een query maak met daarin gevraagd al de klanten te laten zien welke nog niet zijn opgevoerd krijg ik alleen een lijst met al de klanten waarvan nog nooit uren zijn opgevoerd. Dit komt natuurlijk omdat ik bepaalde klanten al heb ingevoerd voor periode 1 en 2 maar nog niet voor periode 3. Nu wil ik ook de klanten zien als ik deze nog niet heb opgevoerd voor periode 3, maar ik kan niet selecteren op periode.

De query heet : tbl_klanten zonder overeenstemmende tbl_urenopvoeren
maar moet dus eigenlijk zijn: tbl_klanten zonder overeenstemmende tbl_urenopvoeren in bepaalde periode


Snappen jullie nog wat ik bedoel.

ik hoor het graag!
 
Laatst bewerkt:
Nou, ik denk niet dat de naam van de query er veel toe doet :). Ook met de nieuwe naam snap ik je vraag niet; wat wil je precies zien? Klanten die in de betreffende periode niet zijn ingevoerd? Dan moet je ook op de periode filteren, naast dus op NULL in KlantID.
 
Dat is juist het probleem, als ik zorgperiode welke ik uit de tabel uren_opvoeren toevoeg in de query laat deze geen periodes zien en kan ik dus ook niet filteren.
Naamloos.jpg
 
Laatst bewerkt:
Klanten zonder contacten hebben in geen enkele periode een contact gehad, dus die vallen per definitie buiten de selectie. Je zult dus een tweede criterium moeten gebruiken, of een UNION query.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan