Aanvullen Keuzelijst met invoerbak

Status
Niet open voor verdere reacties.

seniorkas

Gebruiker
Lid geworden
30 jan 2003
Berichten
6
Hallo beste mensen,

Ik heb een tabel met Naam, Adres enz. (Tnaw) en een tabel met Hobby (Thobby). Deze tabellen zijn gerelateerd.

Nu heb ik een formulier gemaakt die gebaseerd is op Tnaw. Op dit formulier zit een keuzelijst met invoerbak. Die keuzelijst is gebaseerd op Thobby en dit werkt goed.

Als ik een hobby wil selecteren die niet in de lijst voorkomt krijg ik door de opdracht “bij niet in lijst”, een invoerformulier om die nieuwe hobby aan de tabel Thobby toe te voegen. Dit invoerformulier sluit automatisch na de nieuwe invoer. Ook dat werkt goed.

Nu komt het… het nieuwe record met de nieuwe hobby staat niet direct in de keuzelijst. Hij komt daar pas te staan als ik het formulier met keuzelijst een keer sluit en weer open of een keer overschakel naar de ontwerpweergave en weer terug.
Zelf denk ik dat dit moet met de opdracht vernieuwen, refresh of alle records weergeven, maar ik krijg het niet voor elkaar.

Wel moet ik vermelden dat ik alleen maar werk met de standaard opdrachten van Acces omdat ik van visual basic geen kennis heb.

Wie weet raad?
 
Bij het sluiten van het invoerformulier, moet iets komen van
forms!frmhoeheetjeform!fldinvoervakhobby.requery

hierin is frmhoeheetjeform de naam van je formulier waar de keuzelijst met invoervak staat
en fldinvoervakhobby is de naam van de keuzelijst met invoervak waar de hobby's instaan.
 
Allereerst bedankt voor de snelle reactie.

De expressie die je in je antwoord aangeeft klinkt logisch (requery).
Met Help kom ik de opdracht "reqeury" tegen, als je dit leest is dit inderdaad de manier om de lijst aan te vullen.

Nu heb ik heb deze expressie op verschillende manieren toegepast met een macro bij b.v. sluiten, focus verloren of bij focus enz., maar ik krijg de keuze lijst niet aangevuld.

Wat doe ik verkeerd?
 
Hoe het met een macro zou moeten, weet ik niet. Nog nooit mee gewerkt, maar via de code kun je van onderstaande mogelijkheden gebruik maken

Als je zoiets in hetzelfde form hebt, gebruik ik altijd
Private Sub cmbProces_AfterUpdate()
Me!cmbAfdeling.Requery
End Sub

dus nadat de combobox "cmbProces" is gewijzigd, wordt de requery op combobox "cmbAfdeling" gedaan.
In jouw geval wil je de opdracht geven vanuit een ander form, terwijl het huidige form wel open is.
dan zou het iets moeten worden van:

Private Sub Form_Close()
Forms!frmselection.cmbAfdeling.Requery
End Sub

Je kunt het ook doen op het moment dat je weer terugkeert in het 1e form, dus het form waarin de requery uitgevoerd moet worden.
Dan wordt het zoiets van

Private Sub Form_Activate()
Me!cmbAfdeling.Requery
End Sub

De code wordt dan uitgevoerd, iedere keer dat het form geactiveerd wordt.

Succes
Theo
 
Oplossing 485

Deze vraag is al vaker gesteld op deze pagina (zie optie zoeken). Even zoveel antwoorden zijn gegeven. Ik heb er al veel uitgeprobeerd maar bij mij werkt het beste om bij het sluiten van het invoerform mee te geven:

Screen.ActiveForm.Refresh
 
Hallo Anne-Marie, bedankt voor je reactie.

Er staan inderdaad soortgelijke vragen, ik ga die eerst eens aandachtig lezen, wie weet wat ik nog tegenkom want ik ben er nog steeds niet achter wat voor mij de oplossing is.

De oplossing die Theo geeft klink ook heel aannemelijk maar ook daar kom ik nog niet mee uit de voeten maar ik blijf het proberen.

mvg Senior Kas
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan