Twee keuzelijsten met invoervakken:slechts 1 keuzeveld mag worden gevuld

Status
Niet open voor verdere reacties.

gebo51

Gebruiker
Lid geworden
30 mei 2007
Berichten
100
Beste access gebruikers,

Op een formulier gebruik ik twee keuzelijsten met invoervak.
Nu mag de gebruiker kiezen uit beide keuzelijsten, maar als hij een keuze heeft gemaakt,
mag de tweede keuzelijst niet meer geselecteerd worden.

Nu had ik bij de tweede keuzelijst - bij het event verlaten - de vba code geplaatst
Code:
if ([keuzelijst1]).value >0 then
msgbox " bla bla"
end if
docmd. cancelevent

Dit werkt bij niet; beide keuzelijsten kunnen toch een waarde bevatten:(
Iemand een suggestie?
Bedankt alvast
Groeten
 
afterupdate

Misschien kun je beter de afterupdate gebruiken, die wordt aangeroepen als er een keuze wordt gemaakt. Het wordt dan iets als:
Code:
sub keuze1_afterupdate()
if isnull(keuze1) then keuze2.enabled=-1 else keuze2.enabled=0
end sub

en

sub keuze2_afterupdate()
if isnull(keuze2) then keuze1.enabled=-1 else keuze1.enabled=0
end sub

Als je nu iets invult in keuze1, dan wordt keuze2 geblokkeerd. Pas je je keuze1 weer leegmaakt, kun je keuze2 weer gebruiken. Hetzelfde gaat op vanuit keuze2.
 
Laatst bewerkt:
Super Sesam:thumb:
Bedankt voor je snelle reactie

Het werkt prima.
Enig minpuntje is dat als een keuzelijst door de code op enabled is gezet,
deze blijft staan als ik een nieuwe record selecteer.
Bij een nieuwe record moeten beide keuzelijsten in beginsel voor de gebruiker weer beschikbaar zijn.

Heb je daar nog een oplossing voor?

Groeten
 
Laatst bewerkt:
bij aanwijzen

Jazeker, dan zet je in de oncurrent, gebeurtenis bij aanwijzen, dezelfde code maar dan alletwee de regels. Dat maakt dat als beide keuzelijsten niet ingevuld zijn, en dat is bij een nieuw record, ze allebei toegankelijk worden gemaakt.
 
Laatst bewerkt:
Ok Sesam:thumb:
Dat is ook gelukt. Ik ben er bijna echter.....

Als ik nu schakel tussen de records dan heft de code zich ook op.
Dat betekent dat - na het schakelen- de beide keuzelijsten weer geabeled zijn en dat een gebruiker - als hij dat zou willen- in een keuzelijst die niet is gevuld, toch weer een selectie zou kunnen maken, ondanks dat de tweede keuzelijst al een selectie heeft....

3 keer scheepsrecht???:)
 
Bij aanwijzen

Je hebt nu toch code staan in de oncurrent? Die zou ook bij schakelen tussen bestaande records uitgevoerd moeten worden en de keuzelijsten aan of uit moeten schakelen waar nodig. Als het goed is staat er nu iets als:
Code:
sub form_oncurrent()
if isnull(keuze1) then keuze2.enabled=-1 else keuze2.enabled=0
if isnull(keuze2) then keuze1.enabled=-1 else keuze1.enabled=0
end sub
 
Opgelost

Beste Sesam,

:thumb:Gelukt.
Werkt nu helemaal zoals ik het wou!

Hartelijk dank voor je hulp (en geduld:o)
Groeten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan