Keuzelijst die meerdere kolommen invult

Status
Niet open voor verdere reacties.

Munthunter

Gebruiker
Lid geworden
24 apr 2009
Berichten
5
Als absolute Acces-leek ben ik begonnen aan een vrij eenvoudige database. Bij de bibliotheek twee boeken gehaald van Harry Heijkoop en een van Steve Lambert over Acces 2007. Echter loop ik een beetje vast. Het volgende:

Ik wil een keuzelijst maken waarin ik in meerdere keuzes opsom. Dit lukt aardig en ik krijg het ook voor elkaar om 1 of meerdere kolommen te gebruiken. Echter wil ik een keuzelijst maken welke door 1 keuze aan te vinken, direct meerdere kolommen opvult. Een voorbeeld:

Ik voer een contactpersoon in. Piet Bekkers. Piet werkt bij de firma Hoepel. Ik kies in een keuzelijst de firma Hoepel uit. Nu wil ik dat er direct in de hierop volgende kolom het adres van firma Hoepel komt te staan, in de daarop volgende de postcode, etc. Kortom de gegevens van firma Hoepel worden direct weggeschreven wanneer ik deze firma in de keuzelijst aanklik. Wanneer ik een andere medewerker van firma Hoepel invoer, bijvoorbeeld Jan Keulens, hoef ik enkel de firmanaam in de keuzelijst aan te vinken en de verstigingsgegevens worden in de diverse kolommen geplaatst. Deze gegevens blijven immers hetzelfde.

Ik neem aan dat dit voor een Acces-bekende een simpele vraag is maar ik kom er niet uit. Weet ook niet hoe het heet, zodat ik het in 1 van de boeken op kan zoeken.

Gr. Jeroen
 
Een simpele vraag kan ingewikkeld worden, als je een aantal ontwerpstappen overslaat. Dus eerst maar eens controleren of ik het probleem goed interpreteer:

1. Je hebt, vermoed ik, een formulier gemaakt dat je wilt gebruiken om contactpersonen toe te voegen aan een tabel.
2. Je wilt bedrijfsgegevens kunnen opvragen op dat formulier. Deze gegevens wil je vervolgens 'wegschrijven'.

Als dit klopt, dan zou de constructie er als volgt uit kunnen zien:
Je hebt tenminste twee tabellen, bijv. tblBedrijf en tblWerknemer. In de tabel tblBedrijf zet je alle vaste bedrijfsgegevens, zoals adres, centraal telefoonnr, centrale fax etc. Uiteraard heb je in deze tabel ook een ID-veld, dat je gebruikt als sleutelveld.
In de tabel tblWerknemer sla je alle gegevens op die per werknemer anders zijn, zoals direct doorkiesnummer, afdeling, kamernummer etc. Misschien ook andere adresgegevens, als het bedrijf op meerdere lokaties zit. En uiteraard een ID-veld, dat je weer gebruikt als sleutelveld.
In de tabel tblWerknemer zet je ook een veld met het ID-nummer van het bedrijf, want je wilt een werknemer tenslotte koppelen aan een bedrijf.

In het scherm <Relaties> leg je een één op veel relatie tussen de tabellen Werknemers en Bedrijven. Er vanuit gaande dat een werknemer bij één bedrijf werkt, want dat is (voorlopig) wel zo makkelijk te bouwen.

De bedrijfsgegevens die je wilt zien, kun je opvragen door op basis van de tabel Werknemers een query te maken, waarbij je de tabellen Werknemers en Bedrijven toevoegt als bron. Hierbij voeg je in de query alle velden toe van de tabel Werknemers, en uit de tabel Bedrijven haal je alle velden die je als aanvulling wilt zien. Gebruik hierbij echter niet het sleutelveld uit de tabel Bedrijven, want dan gaat je formulier niet werken! Je hebt dat ook niet nodig, want het BedrijfsID veld zit al in je query via de tabel Werknemers. Sla de query op onder de naam qryWerknemers (als voorbeeld, mag uiteraard ook anders...)

Het formulier dat je wilt bouwen, baseer je op de query qryWerknemers. Alle velden die je moet invullen, en wilt zien, zet je op het formulier. Van het veld BedrijfID maak je een keuzelijst met invoervak, of je gooit dit veld weg, en maakt het opnieuw m.b.v. de Wizard Opzoekveld met invoervak. In dat geval gebruik je de tabel Bedrijven als bron, en het veld BedrijfID als veld om de waarde in op te slaan.

Daarna zou, als je een bedrijf selecteert, automatisch het formulier gevuld moeten worden met alle bedrijfsgegevens die je hebt geselecteerd bij het maken van de qryWerknemers.
Je hebt dus geen extra keuzevelden nodig om andere bedrijfsgegevens te selecteren; omdat je een relatie hebt liggen tussen de tabel Werknemers en de tabel Bedrijven, is Access in staat om adresgegevens weer te geven op je formulier.

Mocht je er niet uitkomen, post dan ff een voorbeeldje, dan kunnen we er wat beter naar kijken!

Michel
 
Dank U Michel voor Uw uitgebreide uitleg.

Aangezien ik nog een redelijke leek ben in Acces 2007 ga ik op mijn gemak de stappen doorlopen. Het lijkt er op dat U precies begrijpt wat mijn vraag was.

Ik laat het weten als het is gelukt... of niet ;)

Gr. Jeroen
 
Hallo Jeroen,

Mocht je hulp nodig hebben: schroom niet om te vragen, we helpen graag! Zoals ik al eerder zei, als je er niet uit komt, stuur dan een voorbeeldbestandje mee, dan kunnen we gerichter hulp aanbieden.

Michel
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan