Veld automatisch vullen op basis van keuzelijst

Status
Niet open voor verdere reacties.

Martinezzzzzzzz

Gebruiker
Lid geworden
2 jan 2007
Berichten
31
Goedemiddag allen,

Ik ben voor mijn vrouw bezig met het maken van een access database, maar gezien mijn geringe ervaring met databases heb ik een steuntje in de rug nodig


Situatie:

mijn vrouw fokt konijntjes die als ze naar de nieuwe eigenaar gaan een stamboom meekrijgen. Ik wil in access een stamboomformulier maken waarin ze uit een keuzelijst de vader en moeder kan selecteren, waarna automatisch de grootouders en overgrootouders moeten worden ingevuld, inclusief naam, kleur, oogkleur en fokker


Wat ik al heb


Ik heb een database-tabel waarin alle konijnen staan waarmee gefokt wordt. Naast zaken als kleur, geslacht en dergelijke bevat deze tabel een kolom "vader" en een kolom "moeder". In deze kolommen staan de namen van de vader en moeder van het konijn. De data in deze kolommen verwijst naar dezelfde tabel (in de tabel staan konijn A en B, B is de vader van A)
Ik heb ook een formulier waarmee ik een nieuw konijn aan kan maken dat in de database terecht komt. Even voor de duidelijkheid: konijntjes die verkocht worden hoeven niet in de database terecht te komen. Hiervoor wil ik alleen maar een stamboom kunnen maken op basis van de ouders die wel in de database staan


Wat ik niet snap


Ik maak een nieuwe stamboom voor konijn 1 (gegevens worden handmatig ingevuld). In een dropdownbox selecteer ik de vader (Konijn A). Zodra ik in de dropdownbox de vader (konijn A) invul, wil ik dat de kleur, oogkleur en fokker van konijn A automatisch ingevuld worden in de daarvoor bestemde velden in het formulier. Ook moet in een ander veld de vader van konijn A (konijn B) ingevuld worden. Vervolgens moet ook automatisch de kleur, oogkleur en fokker van konijn B ingevuld worden. Ditzelfde moet daarna nog een keer gebeuren met de vader van konijn B


Wat ik wil weten


1. Hoe vul ik automatisch een veld op basis van een keuze in een ander veld (heb ik hier een query voor nodig, en zo ja, watvoor een, of gaat dit op een andere manier)
2 watvoor veld kan ik gebruiken om deze gegevens in te krijgen (moet dit een keuzelijst zijn, of kan dit ook met bvb een tekstvak)

Wellicht ten overvloede, maar ik gebruik de access versie uit office 365 business

Ik heb mijn best gedaan om het goed te omschrijven, mocht er iets onduidelijk zijn dan laat het vooral weten

Alvast bedankt voor de hulp!
 
Laatst bewerkt:
Je omschrijving is duidelijk genoeg, dus dat is geen probleem. Je kunt dat relatief simpel oplossen met twee keuzelijsten: één voor de vader, en één voor de 'opa'. Die keuzelijsten krijgen in de onderliggende query alle velden die je terug wilt laten komen in de formuliervelden. Dan heb je het dus over het KonijnID, ParentID, Kleur, Oogkleur en Fokker. De tekstvelden op je formulier krijgen dan de volgende formule als Besturingselementbron. Ik sla even een slag naar de namen natuurlijk.
Code:
txtKleur: =Me.cboKonijn.Column(2).Value
txtOogkleur: =Me.cboKonijn.Column(3).Value
txtFokker: =Me.cboKonijn.Column(4).Value
Je vult dus met één klik op de keuzelijst de tekstvakken die aan cboKonijn zijn gerelateerd; de data komt uit de query die onder de keuzelijst hangt
Verder stel je de tweede keuzelijst in met de gekozen waarde uit de eerste keuzelijst.
Code:
Defaultwaarde op cboParentB: =Me.cboKonijn.Column(1).Value
txtKleurParB: =Me.cboParentB.Column(1).Value
txtOogleurParB: =Me.cboParentB.Column(2).Value
txtFokkerParB: =Me.cboParentB.Column(3).Value
Dat zou moeten werken.
 
Bedankt voor je reactie OctaFish, fijn dat je mee wilt denken.

Zoals ik al zei is mijn ervaring met Access zeer gering, dus misschien heb ik een flinke duw nodig ipv een steuntje :confused:

Ik heb geprobeerd jouw manier uit te voeren, maar op verschillende punten loop ik tegen een aantal nieuwe vragen aan . Ik hoop dat je de moeite wilt nemen om me nog wat verder te helpen.

1.Maken van de Query (via wizard):

*Moet ik kiezen voor een selectiequery, of een ander soort query?
*Moet ik kiezen voor een detailquery of een totalenquery?


2. Ik maak een nieuwe keuzelijst (via wizard) en kies de eerder gemaakte query als bron


*Moet ik alle velden uit de query toevoegen aan de keuzelijst, of alleen het veld dat ik in de keuzelijst wil zien (de naam?)?
*Als ik alle velden weer moet geven, moet ik dan nog waarden opslaan in de database om later t egebruiken (wizard geeft me deze keuze)


3. Ik wil een veld maken om de kleur van de via de keuzelijst gekozen vader weer te geven

*Watvoor veld gebruik ik voor kleur, oogkleur en fokker? Moet dit een textvak zijn, of een ander soort veld?
*Hoe voeg ik de code die je geschreven hebt toe aan dit veld?
*Welke delen van de code zijn variabel (=moet ik aanpassen met mijn eigen tabelnamen), en welke horen bij de code? Ik snap bv nog niet helemaal waar cboKonijn voor staat. Is dit de naam van de Query, of van van de keuzelijst, of zit ik er helemaal naast?

Sorry voor de vele vragen, er komt een hoop op me af als beginner met access.

Alvast bedankt voor de hulp!
 
Sorry dat ik je even heb laten 'zwemmen', ik was de vraag uit het oog verloren :)

Ad 1: queries zijn in beginsel altijd selectiequeries in keuzelijsten; andere vormen werken niet. Je mag beide varianten gebruiken, als dat zo uitkomt voor de onderliggende gegevens. Meestal is het geen Totalenquery trouwens.

Ad 2: je neemt alle velden op uit de query, want ik neem aan dat je in de query alleen die velden zet die je ook in de keuzelijst wilt gebruiken. Andere velden toevoegen heeft dan geen zin.

Ad 3: als het veld Kleur uit de keuzelijst komt, dan gebruik je voor de verwijzing altijd een tekstveld. Geldt uiteraard ook voor de andere velden. Behalve dus als je één van de waarden wilt gebruiken in een vervolg keuzelijst.

Ik gebruik voor tekstvelden altijd de toevoeging txt (txtKleur, txtLeeftijd etc) en voor keuzelijsten ofwel lst (keuzelijsten), ofwel cbo (keuzelijsten met invoervak).
 
Excuses van de late reactie. Ik heb het nogal druk gehad.

Bedankt voor je reactie. Ik ga aan de slag met je informatie en zal me melden mocht ik nog ergens tegenaan lopen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan