Verschillende afdelingen, verschillende formulieren?

Status
Niet open voor verdere reacties.

DaFuzz

Gebruiker
Lid geworden
12 dec 2013
Berichten
27
Goedemiddag allen.

Ik sta vandaag weer voor een leuke uitdaging en hoop hier een goed antwoord te kunnen vinden.
Ik heb een database, waar medewerkers bij status in worden bijgehouden.
Zo kunnen wij bijvoorbeeld een duidelijk overzicht krijgen wanneer iemand te laat is, ziek is, of eerder naar huis wil (lijst gaat door, maar voor het idee even)

Nu hebben wij ook verschillende afdelingen en elke afdeling moet zijn eigen formulieren te zien krijgen.
Zo heb ik bijvoorbeeld Afdeling A, B en C.

In de tabellen medewerker en dagrapport heb ik beiden een kolom genaamd Afdeling geplaatst en deze beiden gekoppeld met de Tabel Afdeling.
Afzonderlijk van elkaar is het geen probleem om de medewerkers of rapportages op te vragen van een bepaald stadsdeel, maar.....

Ik heb een formulier die apart geopend wordt, waarin de teamleiders het dagrapport kunnen vullen.
Het is de bedoeling dat dit formulier alleen maar medewerkers laat zien van bijvoorbeeld Afdeling A, B of C en dat alles wat wordt ingevoerd in dit formulier ook bij de juiste afdeling komt.
Het lukt mij om een formulier te openen die speciaal voor een afdeling is, maar het lukt mij niet om de medewerkers te scheiden, waardoor ik alle medewerkers van alle afdelingen blijf zien.

Hebben jullie enig idee hoe ik een keuzelijst (met invoervak) zo kan maken dat hij medewerkers filter op afdeling, afhankelijk van de AfdelingID die ik doorstuur door op de knop te drukken open form?

Alvast van harte bedankt, ik ben er al reeds anderhalve dag mee bezig.
 
Ik lees een paar zaken die de wenkbrauwen een beetje doen fronsen, vrees ik. Dit bijvoorbeeld:
Nu hebben wij ook verschillende afdelingen en elke afdeling moet zijn eigen formulieren te zien krijgen.
Wat is daar het nut van? Mijn streven is nou juist om zo weinig mogelijk formulieren te maken, en tenzij je hele goede redenen hebt om voor afdelingen aparte formulieren te maken, zou ik daar zeker niet aan beginnen. Met een simpel filter (al dan niet automatisch op basis van persoon) werkt het vele malen beter.

En dit:
In de tabellen medewerker en dagrapport heb ik beiden een kolom genaamd Afdeling geplaatst en deze beiden gekoppeld met de Tabel Afdeling.
verbaast me ook hogelijk. Ofwel een persoon werkt op verschillende afdelingen, en dan leg je in een koppeltabel de relaties vast tussen medewerker en Afdeling, ofwel één persoon werkt altijd op één afdeling, en dan leg je de afdeling in de Medewerker tabel vast. Maar niet allebei.

Je eigenlijke vraag is dan weer heel simpel, want dat zou gewoon moeten werken, want je beschrijft het prima! Je maakt namelijk een keuzelijst op basis van Medewerkers, waarin je in het veld AfdelingID van die medewerker (ik ga er maar even vanuit dat je één afdeling per medewerker hebt) filtert op het AfdelingsID van je formulier.
 
Hoi Octafish.

Dank je voor je hulp alvast, ik zal proberen een en ander toe te lichten.

Quote Origineel gepost door DaFuzz Bekijk Bericht
Nu hebben wij ook verschillende afdelingen en elke afdeling moet zijn eigen formulieren te zien krijgen.

Elke afdeling maakt gebruik van dezelfde database, maar mogen niet bij elkaar in de gegevens kijken.
Zo mag Afdeling A dus niet zien wat er in Afdeling B gebeurt.
Vandaar dat ik ook naar een oplossing ben om 1 formulier aan te maken, die de informatie weergeeft per afdeling.

Als startpagina heb ik ook een formulier met knoppen, waaronder Macro's verstopt zitten die het dagrapport opent met de afdelingsID erin.
Zo hoef ik maar 1 dagrapport te maken, die dan de juiste informatie aan de juiste afdeling laat zien.

Dus daar ligt nu mijn probleem.

De medewerkers moeten ingedeeld worden in Afdelingen, maar de formulieren ook.
Dit was voor mij ook de reden waarom ik beide tabellen met elkaar gekoppeld heb aan de tabel Afdelingen
Hopelijk is een en nader zo wat duidelijker.
 
Laatst bewerkt:
Brr... macro's :). Maar dat staat hopelijk een oplossing niet in de weg. Het lijkt mij namelijk helemaal niet moeilijk om te maken. Een formulier kun je heel simpel filteren op basis van een gebruikerID bijvoorbeeld. Als iemand op Afdeling A werkt, dan kijk je bij het openen van het formulier naar het Personeelsrecord, waar dan staat op welke afdeling die persoon werkt. En het formulier opent dan een gefilterde recordset op basis van de afdeling. Idem dito voor rapporten. Ergo: je hoeft helemaal (qua formulieren en rapporten) niks in te delen!
Jouw probleem wordt veroorzaakt doordat je velden in verkeerde tabellen zet, vermoed ik. (Ik heb de db niet gezien, dus dat kan ik nooit met zekerheid zeggen.) Waar een persoon werkt is onderdeel van de persoonsgegevens. Zoals ik al aangaf, kan dat anders liggen als mensen op meerdere afdelingen werken. Maar dat levert weer hele andere problemen op, bijvoorbeeld: Persoon 123 werkt op Afdeling A én op Afdeling B. Als ik het formulier nu filter op zijn afdelingen, ziet hij tegelijkertijd dus de records van zowel Afdeling A als Afdeling B. Je geeft aan dat medewerkers alleen gegevens van hun eigen afdeling mogen zien, maar hoe voorkom je dat een medewerker die alleen op Afdeling A werkt de op de pc van de Persoon 123 dan ook de records ziet van Afdeling B, die gewoon bij Persoon 123 op het scherm staan? Een behoorlijk probleem, lijkt mij. Dat kun je wel weer opvangen door personen bij het inloggen een afdeling te laten kiezen uit de afdelingen waar ze recht op hebben. Je kunt zelfs iets doen met een tabel met geregistreerde pc's waar de database op draait. Je weet namelijk waar een bepaalde pc staat, en op welke afdeling dat is. Dus daar kun je ook op filteren.

Hoe dan ook: je moet ergens vastleggen welke persoon/computer/login op welke afdeling hoort, en dat bepaalt de filtering voor de hele db. Als je het goed inricht, is het simpel :).
 
Goedemorgen Octafish

Ik ben aan de gang gegaan met jouw oplossing door 1 tabel aan te maken met afdelingen en deze te koppelen de medewerker tabel.
Tot dusverre gaat het redelijk, ik heb een startpagina gemaakt waar alle afdelingen als knoppen staan
De knoppen worden geactiveerd door de Brrr Macro's:p en opent een formulier die gebaseerd is op de tabel medewerker, waar ik dan het afdelingsID op kan afstemmen.

Dus als ik op een knop druk, opent er een pagina die de afdelingID direct goed zet.
Dan nu waar ik eigenlijk tegen aanloop:

Op deze pagina wil ik weer een knop maken die een nieuw formulier opent waar een en ander ingevuld kan worden voor het dagrapport.
Dit formulier is gebaseerd op de tabel dagrapport, aangezien hier alles ingevuld moet worden.
Voor het selecteren van de medewerkers wil ik een keuzelijst maken die alleen maar de medewerkers weergeeft van de afdeling waar zij op werken.(er zijn 2 van deze kuezelijsten in het formulier)
Helaas laat het keuze menu mij nu alle medewerkers zien die in de tabel Medewerker staan, in plaats van alleen de medewerkers die voor die afdeling werken.

Ik heb het al geprobeerd door het formulier te baseren op een Query, maar op het moment dat ik de keuze lijst aanmaak, worden alle medewerkers weer getoond.
Waar ik dus naar op zoek ben is een manier om een keuzelijst te filteren op basis van de afdelingID

Hopelijk is het probleem zo wat duidelijker

Invoer Dagrapport.JPG
 
Laatst bewerkt:
Waar ik dus naar op zoek ben is een manier om een keuzelijst te filteren op basis van de afdelingID
En dat doe je door: de keuzelijst te filteren op het AfdelingID :). Meer is er eigenlijk niet van te zeggen, vrees ik. Ga het toch proberen :). Elke keuzelijst is gebaseerd op een tabel of een query. Die query laat bij jou nu alle medewerkers zien. Als je het hebt ingericht zoals ik heb aanbevolen, heb je een veld AfdelingID in die tabel staan. Dat afdeling komt dan overeen met het AfdelngID van het formulier. De makkelijkste manier (voor minder geoefende Access gebruikers al helemaal) is om in het criteriumveld van de query (AfdelingID dus) een verwijzing te maken naar het formulierveld AfdelingID. De makkelijkste manier is dan weer om de functie Opbouwen te gebruiken, de database open te klikken, en uit de groep Formulieren>, <Geladen formulieren> het AfdelingID te kiezen. Dat ziet er ongeveer zo uit:
Code:
Formulieren![fDossiers]![persoon_id]
Maar dan bij jou uiteraard een ander formulier/veld. Dan heb je dus een filtering op basis van de afdeling, en zie je alleen de bij die afdeling horende personen.
 
:thumb::thumb::thumb:Perfect:thumb::thumb::thumb:

Dit was exact wat ik zocht.
Ik ga weer lekker verder stoeien en bouwen :)

Hartstikke bedankt OctaFish.
 
De oplossing stond al in berichtje #2 :). Alleen de uitvoering nog niet. Maar toch: binnen 24 uur opgelost; dat kan rotter :D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan