Rapport met keuzefilter

Status
Niet open voor verdere reacties.

nwametze

Gebruiker
Lid geworden
18 dec 2009
Berichten
67
Dag allemaal,

Op m'n werk lopen een groot aantal instructeurs rond. Deze instructeurs moeten allemaal een aantal cursussen gedaan hebben.

Als voorbeeld heb ik een eenvoudige db toegevoegd. Ik zou deze nu graag zo willen maken, dat als ik het rapport open, ik eerst een mogelijkheid krijg om aan te geven welke cursussen ik in het rapport wil zien. Een soort filter dus.

Ik krijg wel eens de vraag wie er allemaal een bepaalde cursus nog niet gehad hebben. Ik zou dan graag een rapport willen afdrukken met daarop die personen. Liefst een kwestie van het zetten van een vinkje bij de cursus welke je wilt zien in het rapport. Is dit mogelijk?
 

Bijlagen

Laatst bewerkt:
Je zult een extra formulier moeten maken waarin je de filtering aangeeft. In jouw geval dus een formulier met voor elke cursus een selectievakje. Vervolgens moet je het rapport openen met de geselecteerde filtering.
Ik heb een voorbeeldje bijgevoegd.
 

Bijlagen

Bedankt voor je raectie. Ik loop echter tegen een melding aan.
Als ik een vinkje bij cursus 1 zet en dan op 'Rapport Cursussen' klik in het formulier fCursusFilter krijg ik de volgende melding:

[Cursus1]= -1 AND [Cursus2]= 0 AND [Cursus3]= 0 AND

Ik kan dan alleen op OK klikken waarna er in het rapport geen resultaten te voorschijn komen.
Als ik een vinkje bij cursus 1 én cursus 2 plaats komt Jansen in het rapport.

Wat mijn bedoeling eigenlijk is, is het volgende. Wel een selectieformulier zoals fCursusFilter waarin je de cursussen welke je in het rapport wilt zien kan aanvinken.
Maar (als optie) dan met de volgende uitkomst:
- een formulier met alle instructeurs en dan achter hun naam de in het formulier geselecteerde cursussen, zodat je een totaal overzicht hebt van een aantal cursussen en niet van alle 50 (in het voorbeeld maar 3, maar goed)
- een formulier waarin je kan zien wie een bepaalde cursus nog niet gehad hebben.

Hoop dat m'n bedoeling duidelijk omschreven is, anders hoor ik het graag. In ieder geval bedankt voor de hulp tot nu toe.
 
Laatst bewerkt:
Voor wat je wilt zul je de structuur van de database behoorlijk op de schop moeten gooien. Althans, dat zou ik doen... En wel de volgende wijziging: de Tabel Cursussen als volgt aanpassen:

Tabel: tTrainingen
veld: trainer_ID (numeriek)
Veld: cursus_ID (numeriek)
Veld: CursusDatum (datum/tijd)

Nieuwe tabel: tTrainer
Veld: TrainerID (autonummer)
Veld: Naam (tekst)
Velden: andere trainergegevens, zoals adres etc.

Nieuwe tabel: tCursus
Veld: CursusID
Veld: CursusNaam
Velden: andere cursusgegevens

Als je namelijk 50 cursussen wilt kunnen verwerken, dan krijg je een onhandelbare database, zeker als je de filteringen en overzichten wilt kunnen maken die je nodig hebt.
Door de tabellen te splitsen zoals hier aangegeven, maak je voor elke nieuwe cursus een nieuw record in de tabel Training. Op basis van deze tabel maak je dan een kruistabel query, waarbij je alle cursussen kunt uitzetten voor alle trainers/cursisten. Je ziet dan in één overzicht wie wat wanneer gedaan heeft (als je ook een datumveld gebruikt).

Ook filteren op gevolgde/niet gevolgde cursussen is met deze constructie een fluitje van een (paar) cent.

Op basis van het vorige formulier overigens hierbij wel een versie met een keuzelijst. Ik heb de fout die jij kreeg niet kunnen reproduceren; als ik één cursus aanvink, krijg ik netjes te zien wat ik moet zien. De Msgbox heb ik er ter verduidelijking ingezet, zodat je kunt zien welk filter hij maakt. Uiteraard mag die code weg, als je 'm zat bent!
 

Bijlagen

Zo, weer even een tijdje verder.
Ik heb vandaag weer naar het ontwerp gekeken. Het is inderdaad makkelijker om 3 tabellen te maken.

Tabel_instructeur
- instructeur_id (primair)
- overige instructeur info

Tabel_cursus
- cursus_id (primair)
- overige cursus info

Tabel_instructeur_cursus
- instructeur_id (primair)
- cursus_id (primair)

Er bestaat een 1 op veel relatie tussen de bovenstaande tabellen (zie voorbeeldbestand).
Ik heb nu 2 fomulieren, 1 om instructeurs in te voeren/te wijzigen en 1 om hetzelde met cursussen te doen.

Ik heb nu geprobeerd om een nieuw formulier te maken. Mooiste zou een formulier zijn met de naam van de instructeur en dan daaronder alle cursussen (aantal wijzigt niet noemenswaardig) met een selectievakje. Hier kan ik dan per instructeur aangeven welke cursus hij wel of niet gehad heeft. (tenminste, ik denk dat dat het makkelijkst is, wie weet zie ik iets over het hoofd)

Ik ben aan de gang gegaan met een formulier met subformulier, dit gaf niet het gewenste resultaat. Ik zag in je reactie iets over kruistabelquery staan, dit is me niet helemaal duidelijk.

Wellicht ziet iemand een momentje om mij (nog) een duwtje in de juiste richting te geven?

Doel van het geheel is nog steeds alvolgt:
- gegevens instructeurs invoeren/wijzigen (lukt met het formulier)
- per instructeur aan kunnen geven of hij een cursus wel/niet gevolgd heeft (lukt nog niet)
- per cursus een uitdraai kunnen maken wie de cursus wel/niet gevolgd heeft (lukt nog niet)

Alvast bedankt!
 

Bijlagen

Ik heb je tweede probleem een beetje de goede kant opgeschoven met een nieuw formulier fInstructeur-Cursus. Is dit de goede richting?
 

Bijlagen

Hoi Michel,

bedankt voor je (snelle) reactie.
Handig iets die kalender.

Het is nog niet echt waar ik naar op zoek ben.
Als ik nu een instructeur heb die meerdere cursussen gedaan heeft, staat dit niet overzichtelijk op 1 scherm/formulier.

Het idee wat ik had (en waarvan ik niet weet of het haalbaar is) was:
1 formulier met daarop de naam (+eventueel andere gegevens van de instructeur uit de tabel instructeur) en daaronder alle cursusnamen met een selectievakje erachter.
Eigenlijk zoals onderstaande

------------------------------------------------------------------------------------------------

Naam instructeur

Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak
Cursus naam - selectievakje - datumvak

------------------------------------------------------------------------------------------------

Ik kan dan in bovenstaand formulier snel een aantal vinkjes zetten en de datum invullen.
Ik zie dan ook in 1 ook opslag alle cursussen die de instructeur wel of niet gedaan heeft.

Met een query kan ik dan makkelijk een selectie maken van instructeurs die een bepaalde cursus wel of niet gedaan hebben.
Hoop dat m'n vraag zo iets duidelijker is.
 
Het was een duwtje, nog niet veel meer dan dat ;)
Uiteraard is een betere oplossing een doorlopend formulier voor de cursussen. Dan zie je namelijk per instructeur welke cursus(data) er zijn ingevuld. Een checkbox lijkt mij niet zo zinvol, omdat een datum immers al genoeg indicatie is dat de cursus is gevolgd. Tenzij je natuurlijk graag zinloze klikjes zet...
 
Heb weer even naar het hele ontwerp gekeken en ben opnieuw begonnen.
Ik heb het nu voor elkaar om in een formulier met een keuzelijst een cursus te kiezen.
Door daarna op de rapport-knop te klikken, komt er een rapport uit met alle instructeurs welke de gekozen cursus gevolgd hebben.

Heb het idee dat ik er nu bijna ben. Krijg het alleen niet voor elkaar om met de tweede knop een rapport te krijgen met alle instructeurs die de gekozen cursus nog niet gedaan hebben. Heb het idee dat ik te moeilijk aan het denken ben... Wellicht dat iemand een kijkje in m'n voorbeeld kan nemen? Alvast bedankt!
 

Bijlagen

Was een geinige ;)
Maar volgens mij doet-ie het! Overigens doet nu het andere rapport het niet meer, maar dat heb ik met opzet niet gerepareerd. Dat kun je nu wel op basis van de oplossing van de negatieve selectie :D
 

Bijlagen

Erg nieuwsgierig naar je oplossing. Ik kan op m'n werk echter alleen zip-bestanden aan... Zie je kans om hem als zip te uploaden? Alvast bedankt. :D
 
Geen probleem!
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan