Zoekbutton op Access-formulier

Status
Niet open voor verdere reacties.

KlaasHamer

Nieuwe gebruiker
Lid geworden
4 jun 2013
Berichten
4
Ik heb een tabel en een formulier “Teamindeling” met de velden Categorie, Naam en Jaar.
Ik wil op het formulier een tekstveld plaatsen waar ik – een deel – van een Categorie kan intypen (bv “A1” of “A”), waarna alleen de records die aan de voorwaarden voldoen in beeld verschijnen.
Ik ben er kennelijk te dom voor. Het lukt me niet. Wie kan helpen met een opzetje?
 
Dag Klaas,

Ik heb een suggestie van Octafish gebruikt. De optie zoeken met keuzevelden. Werkt bij mij goed.

Hier onder de letterlijk tekst van Octafish
Met een keuzelijst. Althans: daar zou ik mee beginnen. De wizard Keuzelijst bevat een optie om m.b.v. de keuzelijst een record op te zoeken. En dat is precies wat je wilt.
 
Laatst bewerkt:
Dag Klaas,

Ik heb een suggestie van Octafish gebruikt. De optie zoeken met keuzevelden. Werkt bij mij goed.

Hier onder de letterlijk tekst van Octafish
Met een keuzelijst. Althans: daar zou ik mee beginnen. De wizard Keuzelijst bevat een optie om m.b.v. de keuzelijst een record op te zoeken. En dat is precies wat je wilt.

Hallo Scubaman,

Bedankt voor je reactie. Mis ik iets of ontbreekt de tekst van Octafish inderdaad?
 
Dag Klaas,


de laatste regel is zijn letterlijke tekst.


Ik heb de wizard gebruikt en daar staat als laatste optie keuzelijst om een record op te zoeken. Wanneer ik de naam intyp krijg ik alle personen met die naam, als de naam vaker vooromt zie ik bijv de voornaam erbij.


Hoop dat het nu duidelijker is.
 
Als ik de vraag goed begrijp, wil je het formulier filteren op een bepaalde tekststring in een specifiek veld. En die string mag dan op een willekeurige plaats in dat veld staan. Dus als je de letters 'na' intypt dan wil je zowel 'nabezorging' als 'analyse' zien. Heb ik dat goed? In dat geval werkt een (opzoek) keuzelijst niet geweldig, omdat die altijd vanaf de eerste letter zoekt. Bovendien filtert een keuzelijst (met opzoekveld) op de geselecteerde waarde(n). Keuzelijsten kijken dus gelijk naar de volledige waarde.
Ik ga er dus even van uit dat ik gelijk heb, en dat je op basis van ingetypte tekst wilt kunnen filteren. En dat kan met deze routine:

Code:
Private Sub txtFilter1_Change()
Dim sFilter As String
sFilter = "[Categorie] Like '*" & Me.txtFilter1.Text & "*'"
If Len(Me.txtFilter1.Text) > 0 Then
    Me.Filter = sFilter
    Me.FilterOn = True
    Me.txtFilter1.SelStart = Me.txtFilter1.SelLength
Else
    Me.Filter = ""
    Me.FilterOn = False
    Me.txtFilter1.SetFocus
End If
End Sub
Deze code maakt gebruik van een tekstveld met de naam txtFilter1, en maakt een formulierfilter op basis van het veld [Categorie]. Als je die twee elementen (met die namen) hebt, dan kun je de code zo overnemen, en zal hij gelijk werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan