Keuzelijst vullen

Status
Niet open voor verdere reacties.

Copyright

Gebruiker
Lid geworden
10 jun 2008
Berichten
85
Is het mogelijk om in access een keuzelijst te maken met een aantal vaste waardes aangevuld met een aantal waardes vanuit een tabel?

Alvast voorbaat dank voor de reacties.
 
Maak een tweede tabel met hetzelfde veld als de tabel waaruit je je waarden wil halen.
Vervolgens maak je een query die er zo uitziet:

Code:
SELECT Waarde
FROM tblTweedeTabel
UNION ALL SELECT Waarde
FROM tblEersteTabel;

De naam van het veld moet uiteraard in beide tabellen hetzelfde zijn.
Je keuzelijst vul je vervolgens met deze query.
 
Die tweede tabel mag elke naam hebben die je wilt; de eerste query bepaalt de naam van de kolom. Dus je mag zelf bepalen hoe die kolom heet :). Overigens heb je in een keuzelijst meestal geen kolomkop nodig, en dan maakt de naam al helemaal niet uit. Het enige belangrijke is: zorg dat het aantal kolommen in beide kolommen gelijk is. En als je wilt sorteren op een bepaalde manier (eerst de eigen waarden, dan de tabel) dan heb je ook een trucje nodig.
 
Je hebt overigens geen tweede tabel 'nodig' in deze situatie, al hangt het een beetje van je situatie af wat je wilt. Een omschrijving als 'een aantal vaste waarden' is niet echt een wetenschappelijk verantwoorde omschrijving van een probleem :). Als het om twee of drie waarden gaat, kun je volstaan met het aanroepen van een vaste systeemtabel met die waarden als output. Dan hoef je geen nieuwe tabel aan te maken. Toevallig heb ik net in een ander draadje zo'n oplossing aangedragen. Ziet er zo uit:
PHP:
SELECT Distinct "Start" AS Regel, 1 As SortOrder FROM MSysResources
UNION SELECT Distinct "OH3563E01120" AS Regel , 2 As SortOrder FROM MSysResources
UNION ALL SELECT "OE" & Left("0000000000000" & [bestelnummer],13) & Left("000000" & [aantal],6) & ".000+" AS Expr1, 3 AS SortOrder
FROM Export INNER JOIN tblBestelling2 ON [Export].[bestelnummer] = tblBestelling2.[besteld2]
WHERE (((tblBestelling2.aantal)>0))
UNION ALL SELECT Distinct "End" AS Expr2, 4 As SortOrder FROM MSysResources
ORDER BY SortOrder;

Hierbij wordt de systeemtabel [MSysResources] 'misbruikt' om de vaste waarde in op te slaan. Wat overigens niet gebeurt :). Het voordeel van een vaste tabel is dat-ie altijd in de database aanwezig is; en niet verwijderd kan worden. Er kan dus nooit iets fout gaan. Ik pak dan dus graag MSysResources, omdat daar doorgaans weinig records in zitten. Die tabel gebruikt dus geen resources of verwerkingstijd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan