Meerdere velden weergeven

Status
Niet open voor verdere reacties.

Tonyony

Gebruiker
Lid geworden
9 feb 2017
Berichten
47
Hallo,
Ben er eventjes uit met Access. Daarom, hoe zat het ook alweer
Bij het invullen van een formulier moet een contactpersoon opgegeven worden. Deze komt uit een aparte tabel (keuzelijst) contactpersonen.
Die tabel contactpersonen heeft meerdere velden (naam, adres, e-mail, telefoonnummer)
Echter na het selecteren van de contactpersoon wordt in formulierweergave slechts een veld (naam) weergegeven i.p.v. alle bijbehorende velden (adres, etc).
Hoe krijg ik het voor elkaar dat ook bijbehorende velden in het formulier verschijnen?
Alvast bedankt voor de hulp.
 
Je vraag is niet helemaal duidelijk, maar volgens mij doe je dit:
1. Je hebt een tabel met persoonsgegevens
2. Je hebt een tabel waarin je die persoonsgegevens (ID veld) gebruikt, bijvoorbeeld voor reserveringen
3. Voor die laatste tabel heb je een formulier met o.a. een Keuzelijst met invoerveld waarin je de persoon kiest
4. Je wilt ook graag andere persoonsgegevens zien van de gekozen persoon
5. Je wilt die gegevens alleen raadplegen, en niet muteren

Als dit het geval is, dan is de oplossing eenvoudig. In de gebruikte keuzelijst heb je vermoedelijk meerdere persoonsgegevens opgenomen om de juiste persoon te kunnen kiezen. Die gegevens kun je terug laten komen op je formulier door de formule =cboContactpersoon.Column(#) te gebruiken als Besturingselementbron van een aantal tekstvelden.

Dus als je keuzelijst de velden CP_ID, Naam, Adres, Email en Telefoonnummer bevat, krijg je deze formules op de tekstvelden:
TxtNaam: =cboContactPersoon.Column(1)
TxtAdres: =cboContactPersoon.Column(2)
TxtEmail: =cboContactPersoon.Column(3)
TxtTelefoon: =cboContactPersoon.Column(4)

Let op dat de nummering niet bij 2 begint, maar bij 1: Access telt het eerste veld als 0, dus het tweede veld is dan 1 en zo verder. Als je in je keuzelijst de naam al laat zien, dan is het tekstveld txtNaam uiteraard overbodig, want dan zie je de naam twee keer.
 
Dank voor je snelle reactie.
Het gaat inderdaad om het versneld invullen van gegevens.
Er is een projectendatabase (architectuur)
- tabel projecten
- tabel ontwerpteams
- tabel opdrachtgever
en nog andere tabellen
Elk project heeft een opdrachtgever / team
Maar een opdrachtgever kan uiteraard meerdere projecten hebben.
Bij het invullen van een nieuw project is opdrachtgever uit lijst te selecteren. Bij uitvoerformulier is echter alleen het geselecteerd veld te zien (bijv. naam) en niet de aanvullende adresgegevens / telefoon / etc;
 
Het gaat inderdaad om het versneld invullen van gegevens. Bij uitvoerformulier is echter alleen het geselecteerd veld te zien (bijv. naam)
Ik snap nog niet helemaal wat je bedoelt. Een Opdrachtgever staat met zijn gegevens in de tabel Opdrachtgevers, en die kies je dus met een keuzelijst op het formulier. Die techniek (aanvullende gegevens bekijken) heb ik je aangereikt. Da’s wat anders dan ‘versneld invullen van gegevens’. Wat bedoel je daar mee?
 
Ik heb je db bekeken, en ik zie nogal wat eigenaardigheden waar ik eerst naar zou kijken. Om te beginnen: je gebruikt nogal wat keuzelijsten in tabellen. Dat raad ik ten zeerste af; in tabellen moet je eigenlijk alleen tekstvelden gebruiken, nooit keuzelijsten op basis van tabellen. Met name de tabel [***PROJECTINFO***] (erg riskant, ** opnemen in een tabelnaam) zit vol met keuzelijsten. Heb ik dus allemaal omgezet naar tekstvelden. Ik maak hooguit uitzonderingen voor keuzelijsten op basis van waarden (velden als geslacht etc.) of velden met meervoudige waarden. Die ik overigens liever niet gebruik. Een veld als "Naam teamlid/Partner" heb je in de tabel[65_TEAMLEDEN_'Deel'-Project] in 7 'smaken' zitten, en dat is ook een slechte opzet. Gebruik ofwel een veld met meervoudige waarden (kun je met één veld volstaan) ofwel gebruik een gekoppelde tabel waarin geen limiet zit op het aantal personen dat je kan koppelen.
Keuzelijsten horen thuis op Formulieren, waar je er ook de juiste acties aan kan hangen. Dat lukt in tabellen niet. Verder ben ik nog aan het puzzelen op het aantal tabellen; ik vermoed dat er nog wel het e.e.a. vereenvoudigd kan worden.
 
Wat ontzettend fijn dat je er naar hebt kunnen kijken.
Er zijn dus nogal wat dingen mis.
Je vertelde dat er al wat aanpassingen gedaan zijn.
Ga ik aan de db die ik hier heb verder of heeft u wellicht een aangepaste versie waaraan ik verder kan?
 
Ik zal je de nieuwe versie toesturen als die 'gefatsoeneerd' is :).
 
Code:
Gebruik ofwel een veld met meervoudige waarden (kun je met één veld volstaan) ofwel gebruik een gekoppelde tabel waarin geen limiet zit op het aantal personen dat je kan koppelen.

Wat bedoel je hier precies?
Ik zou meerdere samenwerkende partijen aan eenzelfde project moeten kunnen koppelen. Ik neem aan dat je dan de 2e optie bedoeld? (geen limiet op aantal personen). Kan zo'n gekoppelde tabel dan ook meerdere velden weergeven?
Nu wordt slechts het eerste veld (naam) getoond en niet de bijbehorende adresgegevens.
 
Je kan een hoofd-en subformulier constructie gebruiken:
hoofdformulier geeft de gegevens van het project weer en in het subformulier zet je de gegevens van de betrokken partijen.
Opletten: als je een veel op veel relatie hebt: aan één project kunnen meerdere partijen samenwerken, maar één partij kan ook aan verschillende projecten samenwerken dan moet je een koppeltabel gebruiken. Dan heb je een tabel met projecten, een tabel met betrokken partijen en een koppeltabel waarin je noteert welke partij aan welk project werkt.
 
Voorbeeld van werken met een koppeltabel:
 

Bijlagen

  • Projects.zip
    46,1 KB · Weergaven: 13
Ik heb je net de opgeschoonde versie gestuurd. Zelf geef ik de voorkeur aan een koppeltabel, volgens het principe zoals noella dat heeft beschreven, maar ter lering ende vermaak heb ik in je tabel [65_TEAMLEDEN_Deel-Project] een multi-value veld gemaakt ([Teamlid/Partner]) dat de velden [Naam teamlid/Partner 0] t/m [Naam teamlid/Partner 6] vervangt. Dit is in essentie de makkelijkste oplossing om mee te werken. Die oude velden kunnen er dus uit als je de informatie hebt overgezet. In het nieuwe veld heb ik de eerste kolom een breedte van 1cm gegeven, zodat je kunt zien welke nummers je nu opslaat in dat nieuwe veld. Normaal gesproken zou dat veld de breedte 0cm hebben, zodat je alleen de namen ziet, niet de nummers. Dat kiest doorgaans wat makkelijker.
 
En denk ook even na over het gebruik van bestanden; je db is nu al 2MB groot en kan nauwelijks worden verkleind met een zip. Dat komt doordat je de bijlagen binnen de database opslaat. Ik doe dat nooit; ik maak in de map van de db altijd een onderliggende map voor de bijlagen die ik dan dus op de schijf bewaar. In de database gebruik ik alleen tekstvelden waarin de naam (en eventueel het pad) van het bestand staat. Op die manier hou je de database compact, en kun je de documenten altijd nog los bekijken en eventueel aanpassen. Is in mijn optiek een stuk flexibeler en net zo makkelijk in het gebruik.
 
Om bijlage extern te koppelen moet het veldtype dan hyperlink zijn neem ik aan en verwijzen naar een lokale servermap?
 
Nee, gewoon een tekstveld. Je kunt dan, als je een bestand wilt openen, de opdracht FollowHyperlink gebruiken in een formulier (bij bijvoorbeeld de gebeurtenis <Bij Klikken>) om het bestand te openen. Afbeeldingen kun je laten inlezen in een Image Object. Dus die hoeven óók niet in de database.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan