Dropdown list filteren obv reeds bestaande combi

Status
Niet open voor verdere reacties.

pweijden

Gebruiker
Lid geworden
16 okt 2009
Berichten
9
Hi All,

in een form 'rooster' wil ik op een datum een werkplek selecteren. Nu wil ik dat de lijst met werkplekken alleen bestaat uit werkplekken die nog niet eerder zijn gebruikt op de ingegeven datum op hetzelfde formulier.

Hetzelfde probleem heb ik min of meer in het subformulier, waar ik alleen maar een werknemer wil selecteren die nog nog niet op die datum is ingedeeld (combinatie rst_ID, WeknemerID en datum denk ik...)

Ik hoop dat jullie me op de juiste weg kunnen helpen!

Tnx,
PaulBekijk bijlage RoosterQ2.rar
 
Ik heb de keuzelijst in het hoofdformulier aangepast, zodat je een idee hebt hoe je de ander kunt aanpassen. Let ook op de actie die op het datumveld zit; die ververst de keuzelijst. Zonder deze gebeurtenis zie je nog steeds de verkeerde waarden :).
 

Bijlagen

Michel, wederom bedankt voor je supersnelle en nuttige antwoord! Dit werkt prima (hoewel het in m'n productie database nog een error geeft maar dat moet ik wel kunnen oplossen)

Voor het subformulier heb ik het volgende aan de praat gekregen:
Code:
SELECT DISTINCT Werknemers.WerknemersID, Werknemers.Naam, qRooster_Medewerker.WerknemersID
FROM Werknemers INNER JOIN qRooster_Medewerker ON Werknemers.WerknemersID = qRooster_Medewerker.WerknemersID
WHERE (((Werknemers.WerknemersID) Not In (SELECT [WerknemersID] FROM qRooster_Medewerker WHERE [datum] =  [Forms]![Rooster]![Datum] )));

Ik heb de query gemaakt omdat de voorwaarde uit 2 tabellen komt. Echter het probleem is nu dat ik alleen de werknemers vind die al ooit zijn ingeroosterd. Een nieuwe medewerker zal dus nooit in de selectie komen..

De vraag is nu dus denk ik: Hoe krijg ik de initiele query zo dat ik niet alleen kan checken op werknemersmet de genoemde datum, maar ook die zonder een datum. Of denk ik nu verkeerd?
 
Als je mijn voorbeeldje bekijkt, zie je dat ik een Outer Join gebruik. Jij een Inner Join :)
 
Aahh.. Ik zat al te proberen met een OUTER JOIN, maar kreeg een Syntax error.. Na nogmaals jouw voorbeeld te hebben bekeken bleek het met een LEFT JOIN gedaan te zijn. Dit werkt zoals gewenst!!

Nu kan ik aan (ik hoop) de laatste hersenkraker van m'n database beginnen. Zal deze in een aparte thread plaatsen. (Ik neem aan dat dat de gewenste manier is ;-)

MEGA bedankt!!
 
FYI: Een INNER JOIN is een relatie waarbij de koppelwaarden in beide tabellen moeten voorkomen. Daarnaast heb je een OUTER JOIN die in 2 smaken bestaat: een LEFT JOIN en een RIGHT JOIN. Ze zijn in essentie hetzelfde: laat van Tabel 1 alle waarden zien, en van Tabel 2 alleen de gekoppelde waarden. Welke van de 2 gebruikt wordt is niet altijd duidelijk; hangt af van welke tabel links of rechts staat :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan