Selectielijst medewerkers per locatie

Status
Niet open voor verdere reacties.

Johgs

Gebruiker
Lid geworden
19 mei 2011
Berichten
340
Ik heb een tabel met medewerkers en een tabel met locaties. Lang niet elke medewerker is actief op elke locatie.

Per locatie wil ik nu een op een invulformulier de aanwezige medewerkers per dag registreren en om eenduidige invoer te garanderen via een keuzevak met mogelijke medewerkers (en zo tevens gelijk een attentiesein te krijgen bij eerste bezoek, dan immers niet in de lijst).
Om die keuze lijst kort te houden wil ik uit het totale bestand slechts die medewerkers in de lijst die ook daadwerkelijk bij die locatie komen, dit staat in de tabel medewerkers vermeld.
Wat is de beste methode om te voorkomen dat als er een locatie bijkomt er structurele aanpassingen in de dB zelf gedaan moeten worden?
 
Hangt een beetje van je inrichting af. Als een medewerker op meerdere locaties actief kan zijn, moet je een koppeltabel maken waarin je alle combinaties vastlegt. Op het invulformulier filter je dan de medewerkers op de locatie. Dat is simpel en zal geen probleem zijn. Het belangrijkste deel van je vraag is nu ook op te lossen, want als een medewerker níet in de lijst staat, moet die dus worden toegevoegd aan de koppeltabel. En normaal gesproken zou je voor zoiets de gebeurtenis <Bij niet in lijst> gebruiken, maar dat werkt nu niet, want je wilt de nieuwe combinatie wél kunnen kiezen in de keuzelijst. En dat betekent dat je de keuzelijst moet baseren op de tabel met medewerkers, waar iedereen in staat. En de keuzelijst wordt dus getriggerd door records die níet in de medewerkers tabel staan, niet door medewerkers die niet in de koppeltabel staan.
Je kunt de keuzelijst ook baseren op de medewerkers in de koppeltabel, en dan zie je de ontbrekende medewerkers niet, zoals je vraagt, maar de gebeurtenis <Bij niet in Lijst> werkt ook nu niet, want de zoekwaarde die je hebt ingetypt, kan hooguit als nieuwe medewerker worden ingevoerd (in de tabel medewerkers) maar dat is dus niet de bedoeling, want ze staan er al.

Ik denk dat je het beste met twee keuzelijsten kan werken: één voor de medewerkers die al in de koppeltabel staan, en één voor de medewerkers die er níet staan. Die laatste keuzelijst gebruik je dan om de nieuwe medewerker toe te voegen aan de koppeltabel en de twee keuzelijsten bij te werken.
 
Bedankt, ik ga eens aan de slag met zo'n koppeltabel.
Je laatste suggestie is wat lastiger, betreft medewerkers van een externe organisatie dus om dat compleet te krijgen en actueel te houden is wat lastig maar gelukkig zal er niet vaak een nieuwe komen.
 
Ik heb ooit eens een formulier gemaakt waarmee je cursisten kunt toevoegen aan trainingen. Links zie je dan een lijst met cursussen, en rechts een lijst met beschikbare cursisten. In het midden staat een lijst met de deelnemers per cursus. M.b.v. + en - knoppen kun je een persoon toevoegen aan een geselecteerde cursus of verwijderen. Het prinicpe is vermoed ik hetzelfde als wat jij wilt: een overzicht met locaties, een overzicht met medewerkers en een lijst van medewerkers op een locatie. Als je er wat aan hebt...
 
Zeker, al was het maar als voorbeeld hoe het in elkaar steekt.
 
Die koppeltabel is mij duidelijk, enige waar ik nog mee zit is hoe zit het invoerformulier ik elkaar? Op het invoerformulier voor medewerkers moet dan een in principe oneindig aantal locaties kunnen worden vermeld (in mijn geval gelukkig maar een handjevol). Er zal dus op (samengesteld?) formulier een klein tabelletje moeten komen. Of......
 
Ik heb mijn voorbeeldje een beetje aan moeten passen, want er zaten wat foutjes in, maar hier heb je 'm Kijk maar eens of het bruikbaar is; wellicht lost het ook gelijk je nieuwe vraag op. Ik zou, als je het selecteren/toewijzen in een workflow wil doen, dit formulier als popup gebruiken om de toewijzing te doen. Dan hou je het hoofdformulier schoon.
 
Ik heb mijn voorbeeldje een beetje aan moeten passen, want er zaten wat foutjes in, maar hier heb je 'm Kijk maar eens of het bruikbaar is; wellicht lost het ook gelijk je nieuwe vraag op. Ik zou, als je het selecteren/toewijzen in een workflow wil doen, dit formulier als popup gebruiken om de toewijzing te doen. Dan hou je het hoofdformulier schoon.
 

Bijlagen

Bedankt als vast. (vraag nog even op gehouden, moet dit tussendoor doen, dus....)
 
Bijzonder leerzaam bestandje, voldoet volledig aan de vraag. Jammer dat Access geen functie heeft om bij wijzigen van een formulier/tabel naam en/of veldnaam deze ook overal in het script aan te passen. ;-)
 
Maar waarom zou je dat ook doen? :). Zelf probeer ik zoveel mogelijk om gebruik te maken van de namen van objecten, zodat ik die niet zelf hoef te typen, en ik ze probleemloos kan veranderen. Dus niet:
Code:
        DoCmd.Close acForm, "fStartformulier"
Maar:
Code:
        DoCmd.Close acForm, Me.Form.Name
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan