keuzelijst vervolgkeuzelijst in tabel

Status
Niet open voor verdere reacties.

Access2013

Gebruiker
Lid geworden
7 apr 2013
Berichten
33
Beste Helpers,

Wie weet de oplossing voor de functies in een tabel, keuzelijst – vervolgkeuzelijst, die ik al een tijd zoek.

Ik heb een Tbl aanvragen die gekoppeld is aan Tbl werken d.m.v. één op veel relatie. Er kunnen dus meerdere aanvragen ingevoerd worden op één werk.

Bij (sub) Tbl aanvragen wil ik in het veld klantnaam, d.m.v. een keuzelijst, uit de Tbl klant het veld/lijst ZOEKNAAM aanroepen. Als ik de juiste klant (record) heb gevonden wil ik het resultaat uit het veld klantnaam bevestigen in de Tbl aanvragen.

In het daarop volgende veld van Tbl aanvragen wil ik een vervolgkeuzelijst maken die de velden voornaam; tussenvoegsel; achternaam uit Tbl contpers toont als resultaat uit het vorige keuzelijst, veld klantnaam. Dus alleen de contactpersonen zien die bij de klant horen.

Ik heb een voorbeeld toegevoegd.
 

Bijlagen

En waarom zou je dat in een tabel willen? Tabellen zijn daar nu, en in het verleden en vermoedelijk ook in de toekomst niet voor gemaakt. Zowiezo raad ik het gebruik van opzoeklijsten in tabellen af, omdat je geen idee hebt wat je nu eigenlijk in de tabel opslaat; je ziet alleen de alias van de keuzelijst. Je strooit jezelf dus een hoop zand in de ogen. In mijn optiek iets waar ik niet vrijwillig aan begin.
Keuzelijsten (en gekoppelde keuzelijsten) maak je per definitie op formulieren. In jouw voorbeeld zitten die niet, dus ik ga er vanuit dat je die ook nog niet hebt.
Overigens heb je in de tabel [Tbl 01 aanvragen] een teksveld [Klantnaam], dat met geen mogelijkheid te koppelen is aan het veld [Id klant], dat numeriek is. Dus dat mag je eerst oplossen...
 
Beste OctaFish,

Als eerste bedankt voor je reactie.
Bedoel je dat het tekstveld [Klantnaam] in [Tbl 01 aanvragen] gewijzigd moet worden in een numeriek eigenschap om te kunnen koppelen?

Mijn doel is om een hfd.formulier te maken, met gegevens over [Tbl 01 werken]. Daarin een doorlopend sub.formulier te maken met gerelateerde gegevens uit [Tbl 01 aanvragen]. Ik wil de resultaten uit de keuzelijsten in het doorlopend sub.formulier kunnen zien, zodat ik overzicht heb welke bedrijven met de daarbij behorende contactpersonen, voor dat unieke werk, een aanvraag hebben gedaan.

Heb verschillende optie op dit forum gezien, maar weet niet goed wat de beste oplossing is voor mijn doel. Heb je tips en trucs?

Alvast bedankt.
 
Ja, dat bedoel ik. Je kunt tabellen alleen aan elkaar koppelen als de velden van hetzelfde type zijn. Is dat niet zo, dan kun je ze wel aan elkaar koppelen, maar dan kun je geen Referentiële integriteit afdwingen en dat is noodzakelijk bij goede relaties. Als je de relaties goed legt, dan hoef je alleen maar de contactpersoon vast te leggen, niet contactpersoon + bedrijf. Mag je even over na denken ;)
 
Ik begrijp dat wanneer je de contactpersoon als resultaat hebt, je dan ook het pad er naar toe, met relaties enz. hebt. Ik heb ook VBA code’s ontcijferd, gekoppeld aan keuzelijst in een formulier, die het resultaat wegschrijft in een tabel. Gebeurtenis, Na bijwerken. Heb zelf wat geknutseld. Heb toch meer hints nodig ……:confused:
 
Wellicht handig als je dat voorbeeldje dan post, want ik heb geen tijd om voor jou dat formulier te maken. Wat je wilt, hangt een beetje af van je omstandigheden. De koppeling Klant --> CP --> Aanvragen werkt prima en als je in Aanvragen dan een CPID opslaat, kun je de klant herleiden. Dat kan een probleem worden als een CP naar een ander bedrijf gaat, waar je ook mee werkt, want dan zijn de oude afspraken ineens met een ander bedrijf, en dat is natuurlijk niet de bedoeling. In dat geval zijn er een paar oplossingen, waarvan deze twee simpel te maken zijn: a) leg ook het KlantID vast, zodat je per afspraak altijd een combinatie van CP+KlantID hebt, of b) bouw een historie op in de CP tabel, waarin je de perioden vastlegt waarin iemand bij een bedrijf werkt. Je matcht de afspraak dan op basis van de afspraakdatum, die in de periode ligt dat een CP bij het bedrijf werkt. Optie a is het makkelijkst, want je vult dan het KlantID vanuit de keuzelijst CP. Een techniek die je zelf al zegt te kennen.
Dus welke hints verwacht je van ons?
 
Zoals ik het nu heb werkt het. Ben alleen niet zeker van de VBA code. Loop nog tegen twee punten aan. 1) Bij toevoegen laat het queryblad pas het resultaat zien na sluiten van de database. 2) Wanneer ik toevoeg en bv alleen de letter x invoer, en dan met ALT+ pijltoets drop-down menu uit klap, begint de selectie niet altijd bij de letter x.

Heb nu bestand toegevoegd.
 

Bijlagen

Ik snap niet precies waar ik naar zit te kijken, want ik zie geen knoppen. Wat zou de procedure moeten zijn?
 
Frm hfd, Tabblad toevoeg, keuzelijst Id CP. Daar wordt in de keuzelijst de achternaam gekozen van contactpersoon gekoppeld aan het bedrijf waar deze werkt.
 
Waarom heb je twee formulieren op je hoofdformulier die in beginsel hetzelfde doen? Waarom niet het eerste formulier gebruiken om in te voeren? Is hij gelijk bijgewerkt. Ik zie geen enkel voordeel van een tweede formulier. Sterker nog: je toont nu aan dat dat alleen maar nadelen heeft...
Formulieren hebben bij het openen een bepaalde status, waaronder ook de records die er onder hangen. Als je in een ander formulier iets verandert op de recordbron van een reeds geopend formulier, heb je een synchronisatieprobleem, omdat het eerdere formulier dus niet wordt bijgewerkt. Je zult dat apart moeten doen. Waarom in deze situatie die twee formulieren? Geen idee...
 
Het idee was om een leesblad te maken voor gebruikers. Heb nu het e.e.a. in één Frm gevoegd. Ben nog niet te vreden over de beginstand van de keuzelijst.
 

Bijlagen

En wat bedoel je daar mee?
 
Dat in de nieuwe regel/record van het Frm sub. reeds een begin letter in de keuzelijst staat. Wanneer ik in de keuzelijst ga staan, moet ik eerst de inhoud selecteren voordat ik de beginletter van de nieuwe ZOEKNAAM kan invoeren, zodat de keuzelijst gelijk naar de juiste record in de zoekkolom gaat. Ook vind de keuzelijst de juiste record nog niet optimaal. Soms komt hij wel op de juiste beginletter in de kolom, soms niet.

Mijn kennis is te beperkt om hier een oplossing voor te maken. Is dit de beste/snelste manier is om het resultaat te krijgen van wat ik nu uiterlijk gemaakt heb. Het uiterlijk is wel de bedoeling, vast leggen van meerdere klanten en CPen, voor één werk.
 
Het is nog steeds vaag wat je vertelt, maar ik vermoed dat je de eerste kolom niet wilt gebruiken om te selecteren, maar de tweede. Kwestie van de breedte van de eerste kolom op 0cm instellen.
 
Sorry, Ik heb nogmaals het bestand aangepast en toegevoegd. Nu met echte namen. Dit is hoop ik wat duidelijker.

In de nieuwe regel/record van het Frm sub. staat nu reeds een naam in de keuzelijst, die er naar mijn inzicht op voorhand niet hoort te staan.

De inhoud selecteren heb ik verholpen met veld volgorde. De keuzelijst vind nog steeds niet altijd de juiste record.

Is dit de beste/snelste/meest overzichtelijke manier om het resultaat te krijgen van wat ik nu uiterlijk gemaakt heb. Het uiterlijk is wel de bedoeling, vast leggen van meerdere klanten en CPen.
 

Bijlagen

Als je in je tabel een standaardwaarde op een veld instelt, krijg je die in je formulier ook terug. En dat is exact wat het geval is bij de velden in tabel [Tbl 01 aanvragen]. Als je die standaardwaarde weghaalt (zowiezo een onzinnige instelling voor deze tabel) dan ben je van het probleem af.
 
Beste OctaFish,

Het Frm. werkt nu goed. Hiermee is het probleem opgelost.
Ik ben helemaal blij. Bedankt voor je tijd. Top. :thumb:

Heb definitief bestand bijgevoegd.
 

Bijlagen

Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan