waarde uit keuzelijst als tekst in tekstveld tonen & opslaan

Status
Niet open voor verdere reacties.

CoenEnAccess

Gebruiker
Lid geworden
7 jun 2016
Berichten
44
Ik heb een keuzelijst in een formulier. Deze keuzelijst toont alleen een titel ("probleemdefinitie"), maar heeft ook een interne sleutel (niet zichtbaar in de keuzelijst). De gebruiker kan een keuze maken. Deze keuze wordt dan opgeslagen in de database. Maar ik wil de tekst van zijn keuze ook, als tekst opslaan. Dit lukt mij niet.

Dus:
Formulier opent
Gebruiker maakt een keuze uit een keuzelijst met invoervak. Dit invoervak heeft 2 kolommen, in de eerste kolom wordt de interne sleutel geladen; deze is 0 cm lang, en in de tweede kolom de titel van het record dat gekozen wordt (deze kolom is 4 cm lang). De keuze wordt als numerieke waarde opgeslagen in de database. Maar ik wil ook de tekst die na selectie in het keuzevak zichtbaar is, als tekst in een tekstveld opslaan. Deze tekst kan vervolgens nog bewerkt worden indien gewenst.

Beetje cryptisch omschreven maar ik hoop dat het duidelijk is:).

Kan iemand me op weg helpen?
 
Maar ik wil de tekst van zijn keuze ook, als tekst opslaan. Dit lukt mij niet.
Dit druist een beetje tegen correct database ontwerp in (data redundantie) dus de normale reactie moet zijn: NIET DOEN!! Maar er zijn situaties denkbaar waarin het wél noodzakelijk is, en dan heb je het doorgaans over Keuzelijsten die zijn gebaseerd op variabele gegevens, zoals prijzen die normaal gesproken variabel zijn, maar die in een factuur uiteraard niet meer mogen veranderen. In dat soort gevallen sla je het ID op in het gekoppelde veld (doe jij geloof ik ook) en het variabele gegeven vanuit de keuzelijst in een ander (tekst)veld.

De werkwijze is relatief simpel: hang een gebeurtenis aan de actie <Bij klikken> van de keuzelijst, en geef die gebeurtenis de opdracht
Code:
Me.Tekstvak.Value = Me.Keuzelijst.Column(1).Value
Daarmee vul je dus vanuit de keuzelijst het tweede tekstvak met de tweede kolom (ja, Column(1) is voor de tweede kolom).
 
Werkt nog niet

Helemaal eens wat je zegt m.b.t. correct database ontwerp, maar dit is inderdaad zo'n noodzaak. Het moet als vrije tekst aangeboden worden en moet ook aangepast kunnen worden. Naast het feit dat de overige data gewoon wel in een strak genormaliseerd model dienen te worden vastgelegd.

Ik krijg nog geen resultaat. Met dit commando: Me.Problem_Name.Value = Me.ProblemProfileDir.Value krijg ik (zoals verwacht) de numerieke sleutel in het tekstvak. Maar de waarde uit de 2e kolom krijg ik niet in dat tekstvak met het commando Me.Problem_Name.Value = Me.SelectProblemProfileviaBidzone.Column(1).Value



Melding: fout 424 tijdens uitvoering: object vereist
 
Laatst bewerkt:
Of jij plakt verkeerd, of ik lees verkeerd.
Code:
[COLOR=#333333]Me.Problem_Name.Value = Me.ProblemProfileDir.Value 
Me.Problem_Name.Value = Me.SelectProblemProfileviaBidzone.Column(1).Value[/COLOR]
Ik zie hier twee keer hetzelfde veld gevuld worden. Waarbij Problem_Name een numeriek veld is volgens bericht #1, en de tweede kolom een tekstwaarde zou moeten bevatten. Dat kan je nooit in (en zeker niet in een eerder gebruikt veld) hetzelfde veld opslaan.
Dit geloof ik wel:
Code:
[COLOR=#333333]Me.Problem_Name.Value = Me.ProblemProfileDir.Value
Me.[/COLOR][COLOR=#333333]ProblemProfileviaBidzone[/COLOR][COLOR=#333333].Value = Me.SelectProblemProfileviaBidzone.Column(1).Value[/COLOR]
 
Dank voor je reactie AccessGuru. mbt het 2x vullen van hetzelfde veld,..: dat klopt, was voor mij om te bekijken of het probleem lag in het Me.problem_name.value stuk of in het me.selectproblemprofileviabidzone.column(1).value deel:).
En het zit dus in het me.selectproblemprofileviabidzone.column(1).value deel.

Ik kan echter via de door jou gesuggereerde column(1).value command een textveld vullen, en dat tekstveld hanteren in mijn Problem_name veld. Een omweg, en iets wat een goeroe vast een ernstige dummie oplossing vindt (sorry:), maar het werkt wel.

Tnx!
 
Is geen omweg, want de kortste weg :). Vanuit de keuzelijst Me.selectproblemprofileviabidzone vul je met Me.selectproblemprofileviabidzone.column(0).value (of Me.selectproblemprofileviabidzone) het afhankelijke veld, en met Me.selectproblemprofileviabidzone.column(1).value vul je het tweede gekoppelde tekstveld. Eventueel kun je dat doorbouwen door met Me.selectproblemprofileviabidzone.column(2).value een derde tekstveld te vullen. Als je dat aan de gebeurtenis Private Sub Me.selectproblemprofileviabidzone_Click() hangt, vul je de gegevens gelijk als je een keuze maakt in de keuzelijst. Dat kan echt niet sneller of makkelijker.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan