meerdere keuzes maken uit een lijst

Status
Niet open voor verdere reacties.

cramnij

Gebruiker
Lid geworden
4 jul 2007
Berichten
11
Ik loop tegen het vogelde probleem aan:
Ik wil graag in Access 2003!!! uit een lijst (die refereert naar een tabel), meerdere keuzes kunnen maken. Microsoft Offices Online help geeft aan dat dit in principe niet mogelijk is met Access 2003, maar via Visual Basic schijnt het wel te regelen zijn. M.b.v. Access 2007 kan het zeker, dit wordt "velden met meerdere waarden gebruiken" genoemd, echter over Access 2007 beschik ik helaas niet. Daarnaast ben ik ook nog eens totaal niet bekend met Visual Basic.
Mijn vraag is dan ook: is er iemand die al eens eerder met dit bijltje heeft gehakt / tegen dit probleem is aangelopen en de oplossing (het Visual Basic script of iedere andere oplossing) met mij zou willen delen, of mij op weg zou willen helpen met het Visual Basic Script (Ik zou nl. niet eens weten waar ik zou moeten beginnen).
Die persoon of personen zou ik eeuwig dankbaar zijn!!!
Alvast dank!!!
Groet,
Marc
 
Het is in access 2003 zeer eker mogelijk om een veld met meerdere waardes te gebruiken zonder vba, kan je een voorbeeld posten?
 
Road Dogz: wat bedoel je met "kan je een voorbeeld posten"? Bedoel je de db waarmee ik mee bezig ben? Ik zal het uitleggen: ik wil dat er uit een lijst van x soorten bomen men er y kan aanvinken en dat ik van deze aangevinkte bomen een overzicht krijg.

Tardis: ik heb het voorbeeld bestandje van Bartuls uit het draadje bestudeerd maar kom er toch niet uit. Er zitten vier formulieren in deze db en daar zit volgens mij geen formulier bij met de zoals jij het omschrijft ,multi select list, waar ik naar op zoek ben.
Of het moet het formulier frmOverzicht zijn, maar als ik dat probeer te openen krijg ik continu de foutmelding:
Compileerfout: Kan het project of de bibliotheek niet vinden.
 
Zie

http://support.microsoft.com/kb/827423/en-us

Code even zelf aanpassen.

Het opslaan van meerdere gegevens in 1 en dezelfde kolom raad ik persoonlijk af.
Het ophalen van specifieke gegevens (denk bijvoorbeeld aan rapporten of het zoeken naar specifieke gegevens) wordt daar namelijk niet bepaald eenvoudiger op...

Groet,

Tardis
 
Het werkt, maar...........

Hoi Tardis,
Ik heb het eindelijk aan de praat weten te krijgen m.b.v. die laatste link van je. Daarvoor hartelijk dank! TIP voor alle anderen die dit ook willen (m.b.v. vaste gegevens): maak een tabel aan zonder primaire sleutel anders worden alleen (de) cijfers (van de primaire sleutel) weergegeven!

Echter, ........... ik kom er nu achter dat de gegevens die je selecteert uit de betreffende lijst maar tijdelijk blijven "bestaan", namelijk net zolang je in dat formulier bezig bent. Eigenlijk wil ik dat die geselecteerde gegevens permanent bewaard blijven doordat ze worden opgenomen in een tabel. Zodat ik daar later b.v. met behulp van een query weer een bepaalde selectie van kan maken. Ik vraag me echter af of dat via deze ingeslagen wel mogelijk is? Eh....... is het überhaupt mogelijk? Misschien moet het via een heel andere werkwijze?
Je begrijpt het wel ik begin er een beetje radeloos van te worden...
Groet,
Marc
 
Hallo Marc,

met betrekking tot je tip, goed bedoeld maar zeker niet aan te raden ;)
Primaire sleutels zijn voorwaarde om en gegevens uniek te identificeren en om te kunnen verwijzen naar gerelateerde gegevens in andere tabellen.
Als je gegevens die samenvoegen met een primaire sleutel wilt weergeven, gebruik je queries (daar zijn ze voor ;) )

ik kom er nu achter dat de gegevens die je selecteert uit de betreffende lijst maar tijdelijk blijven "bestaan"

Maak een aparte kolom in je tabel en schrijf daar de geselekteerde gegevens naar weg.
Zul je via VBA code moeten doen.

Groet,

Tardis
 
Hallo Tardis,
Je hebt natuurlijk helemaal gelijk met je kritiek op mijn primaire sleutel tip. Maar kun je me ook vertellen hoe ik dan, uit een tabel met een primaire sleutel, de betreffende gegevens (tekst) te zien krijg? Als ik namelijk in de betreffende VBA code verwijs naar een tabel met primaire sleutel dat krijg ik namelijk alleen de cijfers van de primaire code te zien van de selectie die ik gemaakt hebt en dus niet de tekst waar de sleutel betrekking op heeft.

Verder zou ik je willen vragen of je mij misschien op weg zou kunnen helpen met de VBA code om de geselecteerde gegevens weg te schrijven naar een aparte kolom in mijn tabel?
Alvast muchos gracias!!!
Marc
 
Je kunt in een listbox ook meerdere kolommen weergeven.
Door de breedte van een kolom 0 te maken is tie dr wel, maar zie je hem niet.
 
Hoi Bartuls,
Ik heb geen problemen met de List Box en het laten zien van meerdere kolommen maar zonder de primaire sleutel. Het probleem zit 'm in de Text Box weergave van de selectie die ik in de List Box heb gemaakt. In de Text Box worden de geselecteerde gegevens uit de List Box alleen als primaire sleutel weergegeven. Dit gebeurt alleen als ik refereer naar een tabel met een primaire sleutel. Maak ik een tabel aan zonder primaire sleutel dan worden de tekst gegevens uit de tabel weergegeven.
Ik heb nog geprobeerd om de primaire sleutel aan de laatste kolom toe te wijzen maar dat maakt niks uit.
Groet,
Marc
 
Ik ben er inmiddels achtergekomen hoe het primaire sleutel probleem opgelost kan worden.
nl. door GEEN "aparte, Autonummering" primaire sleutel aan te maken, maar de primaire sleutel toe te wijzen aan de eerste kolom van je tabel. Moet je wel nog even het vinkje weghalen bij het "verbergen van de primaire sleutel (aanbevolen)"!

Nu zou het helemaal perfect zijn als de tekst die wordt weergegeven in de Text Box automatisch wordt afgebroken naar een volgende regel. Alles loopt nu achter elkaar door in een en dezelfde regel, gescheiden door komma's.

En verder ben ik natuurlijk nog steeds opzoek naar de VBA code om de geselecteerde gegevens op te laten nemen in een aparte kolom van de betreffende tabel.
 
Het afbreek probleem is ook al opgelost.
Via eigenschappen van de Text Box naar het Tabblad Allen en daar bij
Multi Line: Ja, aangeven.

Nu nog de VBA code.... daar heb ik echter helemaal geen kaas van gegeten...
Wie o wie kan mij hiermee op weg helpen?
 
VBA code zul je in de regel zelf moeten schrijven.
Mocht je dan ergens vastlopen, laat even weten.

Groet,

Tardis
 
Beste Tardis,
Ik zou niet weten waar ik moet beginnen met die VBA code. Ben geen programmeur.
Wel ben ik redelijk goed in dingen uitvogelen als ik een beginnetje heb (zoals die link van jou met de voorbeeld code van de multi selection List Box) maar om een code helemaal vanaf scratch zelf te bedenken, dat gaat mij niet lukken.
Marc
 
Hallo Marc,

je hebt toch echt zelf VBA kennis nodig om dit voor elkaar te boksen.

Als ik jou was, zou ik multiselect laten varen en een aparte tabel maken.
Deze hang je dan in een 1 op veel relatie met je huidige tabel.
Aan je formulier koppel je een subformulier, gebaseerd opje nieuwe tabel.
Daarin zet je dan je keuzelijst en vul je per keuze een rij in.

Het idee dus van orders en orderregels, meerdere orderregels onder een order hangen.

Groet,

Tardis
 
Heb nog dit artikel van Microsoft gevonden, wellicht kun je daar iets mee

http://support.microsoft.com/kb/210203/en-us

Microsoft zelf adviseert in dit artikel om niet meerdere waardes in 1 kolom op te slaan

Although this article demonstrates how to store multiple selections from a multiple-selection list box into a single field, you should realize that it is not good database design, and you should explore alternatives. Storing a list of values in a single field violates basic rules of database normalization theory. First Normal Form in Normalization theory states that all column (field) values must be atomic, or indivisible.

Lees verder ook even de overige nadelen goed door.

Groet,

Tardis
 
Het duurt even maar dan heb je ook wat!!!!!!!!!!!!!!!!!!

Beste Tardis e.a. geïnteresseerden.
Na lang gezoek en geploeter ben ik er eindelijk achter gekomen... Namelijk....
de opzet van mijn database was niet correct!!!!!!!!!!
Door de laatste reactie van Tardis (Ja, je hebt het al in het begin gezegd, maar ik ben denk ik wat traag van begrip!) ben ik er eindelijk!!! achter gekomen dat het helemaal niet handig is om meerdere gegevens in één veld op te slaan. Het is mogelijk, maar het is niet slim!!!

Inmiddels ben ik dus opnieuw begonnen. Ik werk nu met zogenaamde subtabellen / subformulieren, waardoor alle geselecteerde gegevens gerelateerd worden aan de hoofdtabel. Zie b.v. de voorbeeld data base Noordenwind de tabel Orders en Ordersinformatie en het formulier Orders met daarin verwerkt het Subformulier Orders. Op een dergelijke wijze heb ik nu mijn database opgezet.
Ik moet wel eerlijk zeggen dat ik de manier om dit voor elkaar te krijgen binnen Access niet echt een eenvoudig vindt. Het is erg veel trail and error. Volgens mij is op dit gebied nog een verbeterslag te maken. Vooralsnog heb ik een mijn eerste concept database zo goed als draaien, met nog enkele vreemde dingen die me niet bevallen. Mocht ik er niet uitkomen zal ik daarvoor wel een nieuwe vraag stellen. Alle dank voor het meedenken en het me op weg helpen om uiteindelijk tot de correcte werkwijze te komen. Het duurt even maar dan heb je ook wat!!!!!!!!!!!!!!!!!!
Groet,
Marc
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan