Dag iedereen,
Ik ben een eerste database aan het maken in Access. Mijn kennis van Access reikt zover als de cursus die ik gevolgd heb, praktijkervaring heb ik er niet mee. Van VBA ken ik niets, van SQL heb ik een goede basis. Dit is mijn eerste post hier, en ik heb zo het gevoel dat het niet de laatste zal worden
Vooraf: ik ben me ervan bewust dat de syntax voor sommige constructies in deze post niet geldig is voor eender welke taal. Ik formuleer het op deze manier om deze post compact te houden.
(Deel van) de opbouw van mijn database:
Tabel 1: WN_Persoonsgegevens
- KEY=rijksregisternummer. Dus 1 uniek record per medewerker.
- Andere velden: naam, contactinfo (verschillende velden), enz.
Tabel 2: WN_Tewerkstellingen
- KEY=rijksregisternummer + begindatum tewerkstelling
Dus meerdere tewerkstellingen per medewerker mogelijk. (Zodat functiewijzigingen e.d. kunnen worden bijgehouden.)
- Andere velden: einddatum tewerkstelling, …
Relatie tussen tabellen 1 en 2 op basis van rijksregisternummer. (1 op veel)
Formulier: Personeelsfiches.
Is gebaseerd op tabel “persoonsgegevens”. Met subformulieren voor tewerkstellingen, opleidingen, enz.
Dus 1 fiche per medewerker met daarop (ondermeer) de tewerkstellingshistoriek.
Probleem: ik slaag er niet in om in het formulier de mensen die uit dienst zijn, er uit te filteren. Dat zou ik willen doen door WN_Persoonsgegevens.* weer te geven voor de personen die een tewerkstelling hebben met einddatum Null.
Ik heb het volgende al geprobeerd:
1. Query WN_Persoonsgegevens.* inner join WN_Tewerkstellingen.*
2. Formulier “Persooneelsfiches” op die query baseren
3. Eenvoudige filter: WN_Persoonsgegevens weergeven where WN_Tewerkstellingen.Einddatum is Null.
4. Probleem: er komen per medewerker evenveel personeelsfiches tewerkstellingsrecords zijn. (Query maakt namelijk 1 lijn per tewerkstellingsrecord aan.) (Bv. X werd op een bepaald moment gepromoveerd, heeft dus twee tewerkstellingsrecords waarvan 1 zonder einddatum, en heeft daarom twee identieke personeelsfiches waarop beide tewerkstellingen staan.) Dat is natuurlijk niet logisch.
Kan iemand een oplossing geven die me toelaat 1 formulier te krijgen per medewerker, waarbij ik kan filteren op in dienst?
Alvast bedankt!
Bart
Ik ben een eerste database aan het maken in Access. Mijn kennis van Access reikt zover als de cursus die ik gevolgd heb, praktijkervaring heb ik er niet mee. Van VBA ken ik niets, van SQL heb ik een goede basis. Dit is mijn eerste post hier, en ik heb zo het gevoel dat het niet de laatste zal worden
Vooraf: ik ben me ervan bewust dat de syntax voor sommige constructies in deze post niet geldig is voor eender welke taal. Ik formuleer het op deze manier om deze post compact te houden.
(Deel van) de opbouw van mijn database:
Tabel 1: WN_Persoonsgegevens
- KEY=rijksregisternummer. Dus 1 uniek record per medewerker.
- Andere velden: naam, contactinfo (verschillende velden), enz.
Tabel 2: WN_Tewerkstellingen
- KEY=rijksregisternummer + begindatum tewerkstelling
Dus meerdere tewerkstellingen per medewerker mogelijk. (Zodat functiewijzigingen e.d. kunnen worden bijgehouden.)
- Andere velden: einddatum tewerkstelling, …
Relatie tussen tabellen 1 en 2 op basis van rijksregisternummer. (1 op veel)
Formulier: Personeelsfiches.
Is gebaseerd op tabel “persoonsgegevens”. Met subformulieren voor tewerkstellingen, opleidingen, enz.
Dus 1 fiche per medewerker met daarop (ondermeer) de tewerkstellingshistoriek.
Probleem: ik slaag er niet in om in het formulier de mensen die uit dienst zijn, er uit te filteren. Dat zou ik willen doen door WN_Persoonsgegevens.* weer te geven voor de personen die een tewerkstelling hebben met einddatum Null.
Ik heb het volgende al geprobeerd:
1. Query WN_Persoonsgegevens.* inner join WN_Tewerkstellingen.*
2. Formulier “Persooneelsfiches” op die query baseren
3. Eenvoudige filter: WN_Persoonsgegevens weergeven where WN_Tewerkstellingen.Einddatum is Null.
4. Probleem: er komen per medewerker evenveel personeelsfiches tewerkstellingsrecords zijn. (Query maakt namelijk 1 lijn per tewerkstellingsrecord aan.) (Bv. X werd op een bepaald moment gepromoveerd, heeft dus twee tewerkstellingsrecords waarvan 1 zonder einddatum, en heeft daarom twee identieke personeelsfiches waarop beide tewerkstellingen staan.) Dat is natuurlijk niet logisch.
Kan iemand een oplossing geven die me toelaat 1 formulier te krijgen per medewerker, waarbij ik kan filteren op in dienst?
Alvast bedankt!
Bart
Laatst bewerkt: