Selectiefilter in VBA

Status
Niet open voor verdere reacties.

Blondie

Gebruiker
Lid geworden
18 nov 2004
Berichten
14
hallo,

Ik heb een tabel met alle opdrachtgevers en hun bijbehorende transporttrajecten. Ik wil dat de gebruiker de trajecten per opdrachtgever kan filteren met behulp van een keuzelijst. Ik kom zover dat je met behulp van de keuzelijst wel naar de eerste record springt met de gekozen opdrachtgever, maar ik wil dus een lijst overhouden met ALLEEN die opdrachtgever.

Welke opdracht hoort daar bij in VBA?
 
Laatst bewerkt:
Blondie,

wil je in een formulier een keuze maken voor een bepaalde opdrachtgever en dan alleen die records tonen die daaraan voldoen?

Zo ja:

Je kan gebruik maken van de filter functie of je formulier op een query baseren (wat je denk ik al hebt gedaan, aangezien je met 2 tabellen werkt).

Je kan de recordbron aanpassen in VBA code.

na de keuze van de opdrachtgever gebruik je bij de gebeurtenis " na bijwerken" de volgende code:

Me.Form.RecordSource = "SELECT alle veldnamen die je wilt op nemen in de query FROM tblNamen WHERE opdrachtgever = " & Me.kzLijstOpdrachtgever & ""
Me.Form.Requery

De query kan je het beste maken in de query editor en dan de SQL code kopieren en in VBA plakken. Je moet dan de query aanpassen om het werkend te krijgen in VBA. Haal alle ( en ) weg. om de query over meerdere regels te krijgen (zodat je niet 1 regel met code krijgt) kan je die regels "afkappen" en verder gaan op de volgende regel. Dit doe je als volgt:

Me.Form.RecordSource = "SELECT veld1, veld2, veld3, veld4, veld5 " _
& "FROM tbltest " _
& "WHERE opdrachtgever = " & Me.kzLijstOpdrachtgever & ""

Suc6,

Remco
 
Hoi Remco,

Ik ben er uit!

Maar ik heb het volgende oplossing gevonden:

OpdrachtgeverID in de records in de detailsectie gezet;
AfterUpdate van de keuzelijst:

Me.Filter = "[OpdrachtgeverID] = & Me.Keuzelijst
Me.FilterOn = true

Een beetje hetzelfde als jouw idee eigenlijk, maar voor mij iets eenvoudiger!

Heel erg bedankt voor je reactie!
 
Inderdaad, de filter oplossing is wat makkelijker.
Volgens mij kan dat helemaal rechtsonderin het scherm.

Stukje tekst met:

Vraag opgelost?
Vraag niet opgelost?

Groeten,

Remco.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan