drop box koppelen aan andere dropbox

Status
Niet open voor verdere reacties.

mike bravo

Gebruiker
Lid geworden
17 aug 2009
Berichten
15
ik wil graag twee drop boxen in een formulier maken
1 met een lijst aan artiesten en 1 met nummers
dan is het de bedoeling als ik in de ene b.v. doe maar selecteer ik in de tweede dropbox alleen nummers van doe maar kan selecteren

wie kan mij helpen
 
Daarvoor heb je (uiteraard...) twee verschillende keuzelijsten met invoervakken nodig. Je kunt ze alletwee maken met een wizard.
Eerst controleren of je aan de database opzet voldoet die je nodig hebt:
Ten eerste: een tabel met artiesten. In deze tabel heb je één veld aangewezen als sleutelveld, bijvoorbeeld ArtiestID.
Ten tweede: een tabel met liedjes, waarbij je, naast de liedjesgegevens, ook het veld ArtiesID hebt gezet en ingevuld, zodat je de twee tabellen aan elkaar kunt koppelen.
Dan nu de keuzelijsten. Deze moet je maken in de koptekst van je formulier. Anders werken ze niet goed.
De eerste keuzelijst bouw je op a.d.h. van de tabel met artiesten. Je hebt niet zoveel opties bij het maken, maar je kunt wel sorteren op bijvoorbeeld artiestennaam. Je kiest, bij het maken, voor het veld ArtiestID, en de artiestennaam. Kies, als je de optie hebt, voor de optie <Sleutelveld verbergen> als je die tegenkomt bij het maken. Maak ook de kolom Artiestnaam breed genoeg, zodat je alles goed kunt lezen.
We gaan eerst verder met de tweede keuzelijst. Ook de tweede keuzelijst maak je met de wizard. Kies, als de wizard is opgestart, de optie <Waarden in keuzelijst opzoeken op basis van waarde die is geselecteerd in de keuzelijst met invoervak>.
Als het goed is, krijg je nu de mogelijkheid om het ArtiestID uit de tabel Artiesten te koppelen aan het ArtiestID uit de tabel Liedjes. Als je de wizard nu verder afmaakt, heb je, als het goed is, een keuzelijst waarvan de tweede afhankelijk is van de eerste.
Als je er niet uitkomt, hebben we uiteraard wel een paar voorbeeldjes liggen...


Michel
 
Ik heb maar even een voorbeeldje gemaakt.

In het formulier kan je de Artiest selecteren en worden de nummers in de onderste combobox weergegeven.
Beide velden zijn niet-afhankelijk (anders wijzigen de waarden in de tabel).

In de rijbron van txtArtiest zit een GROUP BY op Artiest (zie je een artiest maar 1 maal).
Normaal gesproken zou je een andere tabel hebben waar een artiest maar eenmalig in staat.
De rijbron van txtNummer is ahankelijk van de keuze in txtArtiest:
Code:
WHERE ((([TblArtiest]![Artiest])=[Formulieren]![FormArtiest]![txtArtiest]))

En bij txtArtiest bij Gebeurtenis zit de volgende VBA code:
Code:
Me.txtNummer.Requery
Kortom als je txtArtiest veranderd, ververs dan de nummers in de onderste combobox.
 

Bijlagen

Laatst bewerkt:
Kon het toch niet laten green; moest jouw voorbeeldje toch wat verbeteren :p

Heb er een constructie van gemaakt met twee tabellen, en laat de records nu bepalen door wat je in de keuzelijst selecteert.

Michel
 

Bijlagen

Michel,

Jouw 'drang' om te antwoorden, geeft soms oplossingen die wat minder zijn, zoals deze.

Blijf wel vooral doorgaan (.... met een engels accent klinkt dit wel erg gedateerd), want jouw meeste antwoorden geven vaak de juiste oplossing
 
@Harry
En wat mankeert er dan aan mijn oplossing? Wat mij betreft is het niet veel meer dan een demonstratie die laat zien hoe je met een paar keuzelijsten een selectie kunt maken op een tabel.
Ik zie daar eerlijk gezegd niet zoveel slechts in... Als het zo'n slecht voorbeeld is, dan is het wel zo netjes om aan te geven wat er aan scheelt...

Michel
 
Michel,

Mijn reactie was eerlijk gezegd positief bedoeld. Zie daar de 2de regel.
Het woord 'slecht', heb ik niet gebruikt (die term zou ik ook nooit gebruiken!!). Vond het alleen wat minder dan jouw andere bijdragen, temeer daar het een verbetering is van het voorbeeldje van Greenery. Lijkt mij meer een uitbreiding, met nogal veel code.

Algemene opmerkingen:
Criteria met [Formulieren]... worden in andertalige versies van Access (in ieder geval t/m 2002) niet omgezet. In de 'rowsource' van een lijst kun je ook alleen de veldnaam gebruiken.
Meteen het 1ste item van de 2de keuzelijst laten zien kan met:
Me!cboMijnLijst=Me!cboMijnLijst.ItemData(0)
 
Is dat ook weer duidelijk!
Je hebt gelijk met het formulier criterium: in mijn versie heb ik die voor het gemak laten staan. Zelf doe ik het eigenlijk ook nooit zo. Bedankt voor de aanvulling!

Michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan