Business partners:

Aventeon

 

Intermec 

  

Welnet 

 

 Motorola Solutions

 

 Preferred Supplier van:

 Mediq-Logistiek

 

Reseller van:

Logistics.One

 

  SOTI

 

 

 

 

Leerbedrijf

 

Blogs

apr 12

Written by: Gert van Oel
12-4-2011 12:08 

De keuzelijst met invoervak (dropdownlist) heeft geen selectedRow property waardoor het lastig is om de waarde uit de lijst te retourneren.

 
Stel je hebt de volgende waarden in je dropdownlist (lstNamen)
1;Piet
2;Jan
3;Henk
 
Je kan dan waarden uit de lijst retourneren door de rijen en kolommen te benoemen. Beide beginnen overigens met een 0-waarde. Me.lstNamen.Columns(0,1) levert “Piet” op. Dat is natuurlijk leuk maar meestal wil je de waarde hebben die geselecteerd is door de gebruiker. Me.lstNamen.text of Me.lstNamen.Value geeft de waarde die geselecteerd is. Dit is echter de waarde van de afhankelijke kolom (bound). En het bovenstaande voorbeeld zal meestal de eerste kolom als afhankelijke kolom zijn ingesteld. Wat nu als je een andere kolomwaarde wilt hebben?
 
Zoals gezegd kent de dropdownlist niet een selectedRow property of zo. Maar als je geen rij opgeeft bij Columns retourneert de dropdownlist uit zichzelf de geselecteerd kolom.
 
Als de rij met Henk is geselecteerd en de afhankelijke kolom is de eerste kolom dan is:
Me.lstNamen.Value is “3” en
Me.lstNamen.Column(1) is “Henk”
 
De keuzelijst met invoervak in een doorlopend formulier
 
De keuzelijst met invoervak werkt niet correct in een doorlopend formulier. Als je in een record de waarde in de keuzelijst aanpast dan worden ALLE waarden in de andere keuzelijsten ook aangepast. Dat is uiteraard niet de bedoeling.
 
Hier volgt naar mijn mening beste work-arraund.
 
  1. Plaats een keuzelijst op het formulier zonder deze te koppelen aan een veldwaarde (unbound)
  2. Plaats een tekstveld op het formulier en koppel deze aan de gewenste veldwaarde
  3. Plaats het tekstveld over de keuzelijst zodat alleen het dropdown-pijltje van de keuzelijst nog zichtbaar is
  4. In het NaBijwerken (AfterUpadte) event geef je het textveld de zelfde waarde als wat je in de keuzelijst hebt geselecteerd.
 
 
 
O, en nog iets. Als de waarden in de keuzelijst afhankelijk zijn van een andere veldwaarde in het zelfde record dan moet je in het formulier op het Bij Aanwijzen (OnCurrent) event de keuzelijst de opdracht geven tot Requery.

Tags:

VOICT B.V. en VOICT Services B.V. - Keesomstraat 31 - 6717AH Ede - T: 0318 642413 - E: info@voict.nl