Keuzelijst

Status
Niet open voor verdere reacties.

a1mat

Gebruiker
Lid geworden
13 jul 2001
Berichten
208
Geachte lezer,
Kan ik in een keuzelijst de pijlen om het keuzemenu uit te rollen nog aanpassen?
Ik heb één keuzelijst met 1 pijl omlaag en één keuzelijst met 2 pijlen omlaag en omhoog.
Kan ik dit nog aanpassen en hoe?

Groetjes Math.
 
Volgens mij heeft een combobox met invoervak alleen maar een pijl die naar beneden wijst om de lijst open te klappen. Een normale keuzelijst moet, als je moet scrollen, altijd twee pijlen hebben, want je moet toch ook naar boven kunnen. Kun je een plaatje posten?
 
Laatst bewerkt:
Ja dat klopt
Je hebt gelijk en bedankt

Groetjes Math
 
Hallo lezers,
Ik heb nog een vraag: In een tabel “ACTIVITEITEN” heb ik een veld “Geslacht”waarin ik onder elkaar Dhr. en Mevr. heb staan, gegevens voor het vullen van een keuzelijst met invoervak in het formulier “GILDE”. Ik ga vervolgens naar de ontwerp weergave van formulier “GILDE”. Klik in de werkset op de knop keuzelijst met invoervak en maak met de wizard de keuzelijst. De waarden worden gehaald uit de tabel “ACTIVITEITEN”en het veld “Geslacht”bevat de waarden. De waarden opslaan in het veld “AANHEF” van het formulier GILDE.
Als ik vervolgens het keuzemenu gebruik, dan krijg ik een foutmelding.
Vervolgens ga ik naar de eigenschappen van het keuzemenu en zie ik bij Rijbron: SELECT [ACTIVITEITEN].[Activiteiten nummer],[ACTIVITEITEN].[Geslacht] From [ACTIVITEITEN]
Als ik dit wijzig in: SELECT [ACTIVITEITEN].[Geslacht] FROM [ACTIVITEITEN]
En pas verder aan, aantal kolommen van 2 naar 1.
Aantal rijen van 8 naar 2
Kolombreedte 3cm
En “Alleen lijst” op Ja, dan werkt het keuzemenu wel goed en dat begrijp ik niet waarom de wizard dit niet goed doet of doe ik iets fout?
Is het mogelijk om uit te leggen hoe dit zit?
Bij voorbaat mijn dank
Groetjes Math
 
Om te beginnen: de keuzelijst die je hebt gemaakt, zou je helemaal niet uit een tabel moeten halen. Er staan maar twee waarden in, dus je kunt de lijst veel beter maken met de <Lijst met waarden> als rijbron. Bij Rijbron typ je dan: "Dhr.";"Mevr." als keuzeopties. Bij <Besturingselementbron> kies je dan het veld in de tabel waarin je de keuze wilt opslaan.
Het aantal rijen verlagen van 8 naar 2 heeft niet zoveel zin, want al maak je er 40 van, als je twee opties hebt, zie je er echt maar 2. De breedte van de lijst kan zelfs wel 1,5 cm zijn, en de kolombreedte 1 cm, dan nog zie je de hele kolom.

De rijbron die je met de wizard hebt gemaakt, zal nooit goed gaan werken. De reden daarvoor is, dat je de verkeerde tabel hebt gekozen als basis voor de keuzelijst. De wizard zal (bijna) altijd het sleutelveld uit de gekozen tabel selecteren, samen met de andere velden die je wilt zien; in dit geval dus het veld Geslacht. Het sleutelveld uit de tabel [Activiteiten] is blijkbaar het veld [Activiteiten nummer], dus dat zet Access er netjes voor je bij. In het veld geslacht zal dan ook, bij normale doorloop van de wizard, dit veld gebruiken om op te slaan in je tabel. En vermoedelijk is dat ook de tabel [Activiteiten]...

Kortom: als je een keuzelijst wilt gebruiken om waarden in tabel A te vullen, dan moet je de keuzelijst baseren op tabel B. Deze tabel (B dus) moet de waarden bevatten die geselecteerd kunnen worden. In jouw geval zou je dus een aparte tabel moeten maken voor de Geslachten. Deze tabel bevat dan minstens één veld (Geslacht) waarin je de twee opties invult. Vervolgens maak je een keuzelijst op basis van de tabel Geslacht, en dan werkt het prima. (Je snapt nu hopelijk, waarom ik in het begin voorstelde om daar een simpele lijst van te maken...)

De reden dat jouw oorspronkelijke keuzelijst niet werkte, lag dus in het feit dat het Activiteiten nummer werd gebruikt, en niet het Geslacht. Door het activiteitennummer er zelf uit te gooien, hield je weliswaar het juiste veld over, maar je zou alsnog in de problemen zijn gekomen op een later tijdstip. Waarom? Omdat je de tabel Activiteiten als basis gebruikt. En de keuzelijst laat in zijn huidige vorm alle records zien uit die tabel. Als je dus 30 activiteiten records hebt, zul je ook 30 keer een geslacht te zijn krijgen, uiteraard allemaal dubbele.

Je zult dus op zijn minst de code als volgt moeten aanpassen:

Code:
SELECT [Geslacht] FROM [ACTIVITEITEN]
GROUP BY [Geslacht]
ORDER BY [Geslacht]

Nogmaals: omdat het een hele simpele keuzelijst is, kun je veel beter <Lijst met waarden> gebruiken. Dat is simpeler, en uiteindelijk veel sneller, omdat je geen extra (overbodige) query op je formulier!
 
Hallo Michel,
Allereerst bedankt voor de duidelijke uitleg. Nu snap ik waarom het fout ging en ik had inderdaad beter kunnen kiezen voor: De waarden zullen worden getypt.
Daar had ik aan moeten denken.
Nogmaals bedankt en als er weer iets is hoop ik weer beroep op je te kunnen doen.
Met vriendelijke groeten

Math
 
Graag gedaan!
Uiteraard kun je altijd een beroep doen als je weer ergens tegen aan loopt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan