Waardes in een keuzelijst beperken

Status
Niet open voor verdere reacties.

MarcelV

Gebruiker
Lid geworden
13 aug 2001
Berichten
74
Hallo,

Ik heb een database met 2 tabellen.
- Tabel "Werknemers" met daar een autonummering en een naam.
- Tabel "Taken" met daarin de uit te voeren werkzaamheden en een id veld voor een werknemer.

Er bestaat een relatie tussen werknemerID in beide tabellen.

Nu wil ik een formulier maken waar ik een taak in kan voeren en daarbij via een keuzelijst kan selecteren welke werknemer die taak moet uitvoeren.
Dit is geen probleem, echter nu wil ik het zo dat een werknemer maar maximaal 1 taak op z'n naam kan krijgen en dat dus die werknemer uit de keuzelijst verdwijnt.

Ik heb geprobeerd een Query te maken met als criterium: [tbl taken]![werknemer] = [tbl werknemers]![werknemerID]
dan krijg ik alleen de werknemers te zien die al een taak hebben (precies het omgekeerde van wat ik wil)
dus dacht ik = te vervangen door <>, alleen dan krijg ik helemaal niks als resultaat terug.

Heeft iemand enig idee hoe dit wel moet?

Grtz, Marcel
 
Je zou hier met een subquery kunnen werken. Maak de query als je normaal doet en vul onder het ID veld van de medewerken een subquery in, dat doe je door hetvolgende in te vullen (wel even aanpassen naar je eigen tabellen):

Not In (SELECT IDMedewerker FROM tblTaken)


Grtz,
 
bedankt voor je antwoord, helaas krijg ik ook dan geen resultaten terug.

Heb het bestand even toegevoegd voor de duidelijkheid.

Maak ik een denkfout?
 

Bijlagen

Misschien kun je op mijn manier oplossen

Hoi Marcel,

Je moet bij Focus op Taken een stukje Code Schrijven stelt niet veel voor, in onderstaand voorbeeld laat ik de Subinstrumenten die bij een bepaald Instrument horen zien.

Private Sub Subinstrument_GotFocus()
'*******************************************************************************************************************
' Zorg voor alleen de Bij het hoofinstrument behorende subinstrumenten
'*******************************************************************************************************************

Dim StrSQL As String

StrSQL = "SELECT DISTINCT INSTRUMENT.ins_id, INSTRUMENT.ins_naam FROM INSTRUMENT"
If IsNull(Me.Instrument) Then
Me.Subinstrument.RowSource = StrSQL & " WHERE INSTRUMENT.ins_id>10 ORDER BY INSTRUMENT.ins_id;"
Else
Me.Subinstrument.RowSource = StrSQL & " WHERE INSTRUMENT.ins_id>10 and clng(ins_hin_id) = " & CLng(Me.Instrument) & " ORDER BY INSTRUMENT.ins_id;"
End If
End Sub

Natuurlijk moet je >10 vergeten dat is specifiek voor mijn Selectie.

Ik hoop dat je er wat mee kunt :)

Grtzz
OnkelZ



MarcelV zei:
Hallo,

Ik heb een database met 2 tabellen.
- Tabel "Werknemers" met daar een autonummering en een naam.
- Tabel "Taken" met daarin de uit te voeren werkzaamheden en een id veld voor een werknemer.

Er bestaat een relatie tussen werknemerID in beide tabellen.

Nu wil ik een formulier maken waar ik een taak in kan voeren en daarbij via een keuzelijst kan selecteren welke werknemer die taak moet uitvoeren.
Dit is geen probleem, echter nu wil ik het zo dat een werknemer maar maximaal 1 taak op z'n naam kan krijgen en dat dus die werknemer uit de keuzelijst verdwijnt.

Ik heb geprobeerd een Query te maken met als criterium: [tbl taken]![werknemer] = [tbl werknemers]![werknemerID]
dan krijg ik alleen de werknemers te zien die al een taak hebben (precies het omgekeerde van wat ik wil)
dus dacht ik = te vervangen door <>, alleen dan krijg ik helemaal niks als resultaat terug.

Heeft iemand enig idee hoe dit wel moet?

Grtz, Marcel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan