Tempvars en gegevens uit tweede kolom keuzelijst

Status
Niet open voor verdere reacties.

JohanRVT

Gebruiker
Lid geworden
2 mrt 2011
Berichten
555
Hallo, ik lees her en der dat het niet mogelijk is om via de tempvars add functie de gegevens uit de tweede kolom van een keuzelijst mee te geven?
Ik dit geval van een eenvoudig keuzelijstje "KzlMaand" met 2 kolommen met in kolom 1 de 12 maanden in cijfers en in kolom 2 de twaalf maanden voluit geschreven zou de PDMaandlang de maand voluit geschreven moeten bevatten.
Iemand een idee, voorstel om dit toch mogelijk te maken.

Code:
'TempVars.add "PDMaandlang", Me.KzlMaand.Column(1).value
 
Werkt dat niet? Vreemd.... Ik zie niet in waarom je de tempvar zo niet zou kunnen vullen, volgens mij doe ik dat ook zo.
 
Nee, her en daar vind ik daar zoiets van terug op Internet en de VBA module geeft op die specifieke regel foutmelding. Als je het blijkbaar werkend hebt zou het kunnen omdat de rijbron van de keuzelijst een lijst met waarden is ipv gebaseerd op een tabel?
 
Dat zou kunnen. Maar dan nog: hij moet een waarde geven en die kan je dan hergebruiken.
Heb je al geprobeerd om de keuzelijst eerst in een gewone variabele te zetten?
 
Ik verwijs tot nu toe in een rapport header nog steeds naar het formulier met die keuzelijst in om bv een titel aan te vullen. Dat formulier blijft verborgen openstaan en ik wil van dat formulier af. Dat werkt prima tot nu toe, zal eens proberen aan een variabele mee te geven morgen of zo.
 
Veel veiliger (het helpt als je je vraag gelijk volledig stelt ;) ) is het om de velden vanuit het formulier mee te geven met de OpenArgs parameter. Heb je nergens meer last van.
 
Maar om even op de Tempvars terug te komen: het zijn nogal krachtige dingen die één klein nadeel hebben: ze moeten weten wat je er in stopt. En bij tekstvakken of keuzelijsten betekent dat dat je moet aangeven welke eigenschap van het object je er in kwijt wilt. Normaal gesproken kun je een object opvragen met zijn naaam. Dus een variabele (ik heb het nu even over een normale variabele) vul je zo:
Code:
PDMaandlang = Me.KzlMaand
of zo:
Code:
PDMaandlang = Me.KzlMaand.Value
of zo:
Code:
PDMaandlang", Me.KzlMaand.Column(0)

Dat werkt in alle gevallen prima. In alle handboeken staat dat de eerste twee varianten gelijk zijn, omdat Value de default eigenschap van een keuzelijst is. Niet dus. Althans: niet als het gaat om een tempvar. Die ziet deze code
Code:
TempVars.add "PDMaandlang", Me.KzlMaand
als het toewijzen van het object aan de variabele. En dat mag niet; je moet (en wilt vermoedelijk) de waarde gebruiken. Dan krijg je:
Code:
TempVars.add "PDMaandlang", Me.KzlMaand.Value
Deze code werkt wél. Wil je een andere waarde (uit een andere kolm) van een keuzelijst uitlezen, dan moet je ook hier de waarde gebruiken. En dat doe je dan zo:
Code:
TempVars.add "PDMaandlang", Me.KzlMaand.Column(1)
En ook dan werkt de tempvar weer prima. Je zult vast ergens gelezen hebben dat je altijd de Value moet uitlezen, dus die zal je er dan wel om die reden achter geplakt hebben, maar dat is dus fout.
Hopelijk is het nu wat duidelijker :).
 
Inderdad, was aan 't rommelen geweest met zonder haakjes, met zonder value, uitroepingsteken, etc... maar nooit de jusit combinatie. Werkt prima nu.
Weeral bedankt voor de insteek.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan