Keuzelijst met invoervak geeft inhoud niet weer

Status
Niet open voor verdere reacties.

pimrs

Gebruiker
Lid geworden
22 okt 2009
Berichten
9
Het zit zo: Op een formulier kan een bedrijf gekozen worden dmv een keuzelijst met invoervak. Vervolgens kan dan van dat specifieke bedrijf een contactpersoon worden gekozen, dus niet van andere bedrijven. Deze 2de keuzelijst met invoervak haalt de gegevens uit een query die de voornaam, tussenvoegsel en achternaam in 1 veld combineert zodat de lijst niet alleen bestaat uit bv een achternaam. Daarnaast worden deze records natuurlijk alleen opgeroepen als het id van het bedrijf overeenkomt met de keuze uit de eerste keuzelijst met invoervak.

Dit werkt allemaal naar behoren, indien er een bedrijf gekozen worden komen netjes alle daarbij behorende contactpersonen in de 2de keuzelijst met invoervak beschikbaar. Het autonummer van het desbetreffende formulier wordt ook opgeslagen in de tabel.

Nu is het probleem dat wanneer het formulier opnieuw geopend wordt hij alleen nog het contactpersoon uit het eerste record weergeeft. Als je naar het 2de record navigeert is de naam van de contactpersoon verdwenen. Door het formulier te verversen komt de naam weer te voor schijn (hij blijft ook gewoon in de tabel staan). Nu is dit natuurlijk op te lossen door een macro aan het formulier toe te voegen die het laat verversen waneer er focus is. Maar dit is natuurlijk niet wat ik wil :cool:

Het probleem lijkt em te zitten dat het veld niet direct de query uitleest ofzo, en dit pas doet nadat het formulier wordt ververst.

Iemand suggesties?
 
Bij gebeurtenis van het formulier --> Bij aanwijzen het volgende in VBA:

Private Sub Form_Current()
VELDNAAM_Click
End Sub

Hiermee ververst je het formulier bij openen.

Enkel over Click twijfel ik een beetje..., aangezien ik het voor ja/nee veld gebruik.
Wellicht is dit een oplossing.
 
Laatst bewerkt:
Als ik in plaats van een macro een vba code erachter zet kom ik in principe op het zelfde uit maar dan een vba code ipv een macro. Ik ben ook bang dat een click in een bepaald veld ook niet uitmaakt, want daarmee ververst het formulier immers ook niet.

Het vreemde is dat hij de naam van het contactpersoon wel laat zien bij het eerste record, dus als je het formulier opent.

In ieder geval bedankt voor je input :)
 
Kun je een gestripte versie posten? Het probleem kan een aantal oorzaken hebben, en om ze allemaal af te lopen, is zoveel typwerk...
Een paar mogelijkheden:
1. De keuzelijst is niet gekoppeld aan een veld
2. De onderliggende query is niet helemaal juist
3. De bron van het formulier is niet helemaal juist
etc.
Je kunt bij de gebeurtenis <Bij Aanwijzen> (Current in VBA) nog een requery zetten op de keuzelijst:
Me.Veldnaam.Requery

Maar een voorbeeldje is wat handiger...
 
Dit is een stripped versie. Als je dus in het Project formulier van record 1 naar 2 gaat wordt het contactpersoon dus niet weergegeven. Als je ververst (wat dus op verscheidene manier kan) komt het contactpersoon weer tevoorschijn.

De vraag is dus ook waarom het contactpersoon niet gelijk naar voren komt wat gebeurt als je het formulier opent.
 

Bijlagen

  • stripped.rar
    34,7 KB · Weergaven: 30
Laatst bewerkt:
Tis een 2007 db; daar kan ik pas vanavond naar kijken.
 
Vanavond doe ik weer een 2007 avond :) (Vraag me niet waarom ik daar blij over moet zijn....)
 
Zoals beloofd....
Ik heb wat relaties aangepast/verwijderd, de bron van de keuzelijst verbouwd en een macrootje weggegooid van het formulier, en nu doet-ie het prima.
De keuzelijst van de CP moet je laten opbouwen nadat je een bedrijf hebt gekozen. Door een query e een macro te gebruiken, werd de lijst denk ik op het verkeerde moment gegenereerd, met als gevolg dat de keuzelijst de mogelijke waarden niet kon laten zien, al stonden ze goed in de tabel. Dat is nu dus aangepast.
 

Bijlagen

  • stripped.rar
    34,7 KB · Weergaven: 22
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan