Conditionele tekstovername in een tabel

Status
Niet open voor verdere reacties.

rvdsch

Gebruiker
Lid geworden
18 jun 2009
Berichten
170
Beste forummers,

Ik heb ook nog een tweede vraag. In een tabel/formulier staat een veld 'transporteur' en een veld 'vervoermiddel'. Het veld transporteur staat standaard op intern. Het veld 'vervoermiddel' geeft dan een dropdown menu met alle mogelijke middelen van transport. Beide velden hebben dus een tekstwaarde. So far so good.
Soms is er ook extern transport dus wordt er in het veld 'transporteur' de naam van de externe transporteur ingetoetst.
Ik wil graag dat dan in het veld 'vervoermiddel' de waarde die in het veld 'transporteur' staat verschijnt (=de naam van de externe transporteur).

Ik zat zelf iets te denken aan het commando IF Not (Intern)@Transporteur Then TAKEVALUE(Transporteur)

Bedankt voor jullie hulp!
 
Je kunt aan een keuzelijst een actie hangen bij de gebeurtenis <Bij niet in lijst>. Hierbij is de actie afhankelijk van de rijbron van de keuzelijst; je kunt een lijst met waarden gebruiken, of een tabel.
Normaal gesproken moet je met keuzelijsten kiezen uit de aangeboden waarden, dus ik zou zowiezo een vast item opnemen in de keuzlijst, en in het tekstvak dan de naam van de externe transporteur.

Misschien kun je eerst duidelijk maken hoe de keuzelijst is gemaakt?

Michel
 
Hierbij een database met mijn probleem.
Het draait allemaal om Tabel1. NaamBedrijf staat standaard op HB en dan volgt er een dropdownmenu in het veld transportmiddel. Het probleem is eigenlijk dat ik wil dat zodra er in het veld "NaamBedrijf" iets anders staat dan HB (bijv. Henk) er in het veld "Transportmiddel" dezelfde waarde staat als in het veld "NaamBedrijf" (in ons voorbeeld dus ook: Henk).

Alvast bedankt.
 

Bijlagen

Ik vraag me af of wat je wilt wel zomaar kan; je hebt keuzelijsten gemaakt in tabel1 voor zowel <Klanten > als <Transportmiddel>, waarbij je dus het sleutelveld opslaat in je tabel. Beide sleutelvelden zijn autonummervelden, en daar ga je (o.a.) problemen mee krijgen in de constructie. Wat jij wilt, kan al niet op tabelniveau, dus je moet zowiezo naar een formulierconstructie kijken.

Het probleem is, dat je in de tabel <Klanten> records hebt staan die nog niet in de tabel <Transportmiddel> staan. Ze zullen dus moeten worden toegevoegd. De procedure <Bij niet in lijst> die ik hiervoor in gedachte had, werkt op de keuzelijst Transportmiddel, maar die wil je juist niet hoeven te gebruiken. Jij wilt al dat de keuze wordt toegevoegd aan de tabel, als hij gekozen wordt in de keuzelijst NaamBedrijf.

Dat schept twee mogelijkheden voor de tabel Transportmiddel: bij de eerste keer kiezen van een bedrijf zal het transportrecord nog niet bestaan, en moet hij worden toegevoegd. Bij elke volgende keer kiezen, moet het overeenkomende transportmiddel dus worden gekozen.

Het probleem dat je eigenlijk hebt, is dat de ID nummers in de tabellen nooit synchroon zullen lopen, omdat je de klantnaam niet in dezefde volgorde zult selecteren als ze zin opgeslagen in de tabel Transportmiddelen. Er is dus een ingewikkelde constructie nodig om de waarde van <NaamBedrijf>, wat een getal is, te matchen met het veld <Transportmiddel>, wat een tekstveld is.

Zeker geen beginnersstuf.... Affijn, ik kom er denk ik wel uit, en zal z.s.m. een voorbeeldje voor je klaarzetten!

Michel
 
En hier is dan zo'n opzetje....

Op het formulier fTabel1 heb je een keuzelijst NaamBedrijf, waar je een bedrijf kunt kiezen. Ik heb er geen standaardwaarde op gezet, omdat de vervolgactie afhankelijk is van de keuze die je maakt. Als je met een standaardwaarde werkt, ziet Access dat niet als een gekozen selectie, en wordt er geen actie uitgevoerd. Je moet dus bewust een keuze maken.
Nu komt het mooie: als je een bedrijf kiest dat nog niet voorkomt in de tabel transportmiddel, dan wordt dat record aangemaakt, en gekozen. Ook wordt bij elk nieuw record dat je maakt gekeken naar de keuze uit de lijst, en de overeenkomende transportwijze geselecteerd.

Het heeft een hoop zweet gekost, dus wees er vooral héél blij mee :D

Michel
 

Bijlagen

Laatst bewerkt:
Dankjewel Michel,

Dit is iets waar ik verder mee kan werken. Het is nog niet helemaal precies wat ik bedoel maar misschien is dat ook wel niet mogelijk:(
In ieder geval vind ik het heel tof dat je de moeite hebt genomen mij verder te helpen!!:)

Rob
 
Wellicht een ander idee:

Misschien kan er een gebeurtenis worden gemaakt in het veld "NaamBedrijf" zodat Nawijziging automatisch de invoer van NaamBedrijf wordt overgenomen in Transportmiddel.

Maw NaamBedrijf staat standaard op HB. Bij geval van wijziging is er dus een gebeurtenis die de invoer van 'Transportmiddel' automatisch gelijksteld aan de invoer in 'NaamBedrijf'
Iemand ideeen hoe dat in SQL kan??
 
*Proest* Ik zie net dat jij dat allemaal al hebt zittend doen Michel:p
Lekker slim ben ik ook weer
 
Waarom zo moeilijk?
"Soms is er ook extern transport dus wordt er in het veld 'transporteur' de naam van de externe transporteur ingetoetst.
Ik wil graag dat dan in het veld 'vervoermiddel' de waarde die in het veld 'transporteur' staat verschijnt (=de naam van de externe transporteur).

Als je voor elke externe transporteur in de tabelvervoersmiddel ook een item met de betreffende naam van de transporteur aanmaakt is het probleem ook opgelost. De tabellen blijven ook nog eens consistent.
 
Waarom zo moeilijk?


Als je voor elke externe transporteur in de tabelvervoersmiddel ook een item met de betreffende naam van de transporteur aanmaakt is het probleem ook opgelost. De tabellen blijven ook nog eens consistent.

Het is voor het overzicht wel makkelijk. In het feitelijk systeem zou er dan een enorm dropdownmenu komen. Ik heb het gevoel dat het best makkelijk moet zijn maar ik ben een volkomen leek op het gebied van SQL. Ik heb mij al iets erin verdiept.
Er is eigenlijk geen enkel probleem als de standaardwaarde niet verandert wordt. Het moet in mijn ogen mogelijk zijn een Command te maken dat inwerking treedt als er een wijziging plaatsvindt.
 
Wil je dat er nog iets aan mijn oplossing zou moeten worden veranderd, of kun je er mee uit de voeten?

Michel
 
Hoi Michel,

Dank je voor jouw aanbod. Ik heb overlegd en ik ga jouw oplossing in de praktijk brengen.

Rob
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan