Hoe kan ik een query zich laten aanpassen aan de waarde in een combobox

Status
Niet open voor verdere reacties.

MistrCetje

Gebruiker
Lid geworden
12 jan 2012
Berichten
18
Hallo,

Sinds kort zoek ik een oplossing voor mijn probleem.
Ik heb ene query aangemaakt die ervoor zorgt dat hij gaat kijken naar de waarde in mijn combobox. Het is nu het probleem dat hij zich niet gaat aanpassen iedere keer dat ik mijn waarde wijzig in mijn combobox, ik moet dus het formulier opnieuw laden met de waarde reeds ingevuld. Hoe kan ik ervoor zorgen dat hij zich aanpast iedere keer als ik iets anders intyp (m.a.w. telkens als in een letter wijzig.

hier is mijn SQL van mijn query:

Code:
SELECT tblLeerlingen.Voornaam, tblLeerlingen.Naam, tblLeerlingen.Klascode
FROM tblLeerlingen
WHERE (((tblLeerlingen.Naam) Like "*" & [Forms]![frmAfwezigheidsbeheer]![cboLeerling].[Text] & "*")) OR (((tblLeerlingen.Voornaam) Like "*" & [Forms]![frmAfwezigheidsbeheer]![cboLeerling].[Text] & "*")) OR (((tblLeerlingen.Klascode) Like "*" & [Forms]![frmAfwezigheidsbeheer]![cboLeerling].[Text] & "*"));

Moet ik iets van code toevoegen bij mijn cboLeerling_Change() ?
 
Deze vraag had je beter in het Access forum kunnen stellen, want daar hoort-ie eigenlijk thuis, al heb je voor de oplossing wel een beetje VBA nodig. Je moet namelijk een actie hangen achter de gebeurtenis <Bij wijzigen> van het tekstvak.
Code:
Private Sub Text_Change()
     Me.Form.Requery
End Sub
 
bedankt voor het antwoord, maar het werkt nog steeds niet, uw code is de juiste, maar ik zou ervoor moeten zorgen dat iedere keer bij cbo_change() dat hij opnieuw gaat kijken naar de query, dat hij zijn bron opnieuw gaat opzoeken en gaat aanpassen in de lijst.
 
Dan doe je iets niet helemaal goed; als je een formulier gebruikt om een records te bekijken, en je gebruikt in de query van dat formulier een filter dat gebruik maakt van een tekstvak op dat formulier, dan moet je het formulier op deze manier verversen. Kortom: het zou moeten werken!
Je geeft nu overigens geen tekstvak aan als filterbron, maar een keuzelijst (cbo_Change) riekt naar een keuzelijst met de naam cbo).
 
Het is geen tekstvak, het is een keuzelijst met invoervak, m.a.w. een combobox, maar de naam het het keuzelijst kan je zelf instellen dus dit maak niet uit. ik heb de filter van de query aangepast zodat hij altijd de waarde in het tekstvak van de keuzelijst neemt. ik heb de 'Me.Form.Requery' toegepast in mijn code zodat hij dit iedere keer doet bij het veranderen van de tekst, de enige mogelijkheid van een fout van mij zou kunnen zitten dat '_change()' niet het juiste is, maar dat het misschien een andere actie zou moeten zijn.
 
Code:
SELECT tblLeerlingen.Voornaam, tblLeerlingen.Naam, tblLeerlingen.Klascode
FROM tblLeerlingen
WHERE (((tblLeerlingen.Naam) Like "*" & [Forms]![frmAfwezigheidsbeheer]![cboLeerling].[Text] & "*")) OR (((tblLeerlingen.Voornaam) Like "*" & [Forms]![frmAfwezigheidsbeheer]![COLOR="red"][cboLeerling][/COLOR].[Text] & "*")) OR (((tblLeerlingen.Klascode) Like "*" & [Forms]![frmAfwezigheidsbeheer]![COLOR="red"][cboLeerling][/COLOR].[Text] & "*"));

Code:
Private Sub [COLOR="red"]cboLeerling[/COLOR]_Change()
     Me.Form.Requery
End Sub

Ik sluit niet uit dat je in de query
[cboLeerling].[Value]

moet gebruiken.
 
Dit heb ik exact hetzelfde, er is niks anders, behalve dat ik [cboLeerling].[Value] niet kan gebruiken want .[Value] is geen geldige optie.
Is er een manier dat ik in mijn code kan zeggen dat hij opnieuw de query moet laden, de Me.Form.Requery dient om de query te laten runnen, maar zou het mogelijk zijn om de query opnieuw te laden ?
 
OK, ik ben zojuist zelf op de oplossing gekomen, ik moest inderdaad telkens mijn query opnieuw in mijn combobox laden.

als aanvulling van de forum volgt hier mijn code:
Code:
Private Sub cboLeerling_Change()
Me.Form.Requery
cboLeerling.RowSource = "qryLeerlingenKlas"
End Sub

Bedankt voor de info iedereen die mij geholpen heeft :)
 
Ik sluit niet uit dat je in de query

[cboLeerling].[Value]

moet gebruiken.

Ter info,

expliciet gebruiken van de eigenschap Value is nooit nodig.
Deze wordt nl standaard gebruikt.

Tardis
 
snb was bijna correct...
De query zou, als je een keuzelijst gebruikt (al heb je het zelf over een tekstvak, dus daar ga ik maar even van uit) er zou uit moeten zien:
Code:
SELECT Voornaam, Naam, Klascode FROM tblLeerlingen
WHERE ((Naam Like "*" & [Forms]![frmAfwezigheidsbeheer]![cboLeerling].Value & "*")) OR ((Voornaam Like "*" & [Forms]![frmAfwezigheidsbeheer]![cboLeerling].Value & "*")) OR ((Klascode Like "*" & [Forms]![frmAfwezigheidsbeheer]![cboLeerling].Value & "*"));
Je kunt de eigenschap Text alleen gebruiken voor een object dat op dat moment de focus heeft; omdat je het object in een query aanroept, is dat per definitie niet het geval. Vandaar dat Text niet werkt.
Je naam geeft, zoals ik al zei, aan dat je een keuzelijst gebruikt en geen tekstvak. Die zou ik namelijk txtLeerling noemen. Bij een keuzelijst hoef je geen Like te gebruiken, omdat je vergelijkt met de volledige waarde uit die keuzelijst.
 
Ok, bedankt voor de info ik zal het onthouden voor als ik in de toekomst nog eens iets moet doen met een tekstvak. Hetgeen wat ik nu moest bereiken is nu in orde en ik dank jullie daarvoor :)

Grtz !!
 
Mag de vraag op <Opgelost>!
 
Hoe doe je dat ? (ik weet dit nog niet want dit is mijn eerste keer dat ik iets post.
 
Voor alles is een eerste keer ;) In de blauwe menubalk bovenin vind je een knop waarmee je de vraag op <Opgelost> kan zetten. Dat kan alleen de vraagsteller.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan