Klein voorbeeldje…ik heb een onverbonden tekstveld met de naam ZoekOpAchternaam als de gebruiker iets intypt en vervolgens op de Enter toets drukt wordt de sub Startzoeken opgestart. In deze routine bouw ik eerst het filter op. In mijn geval met jokers. Vervolgens activeer ik het filter met het commando
DoCmd.ApplyFilter
Voorbeeldje :
'event van het invoerveld
Private Sub ZoekOpAchternaam_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then Startzoeken
End Sub
'Zoekroutine
Private Sub Startzoeken()
Dim tf As String
If Len(Nz(Me.ZoekOpAchternaam)) > 0 Then
tf = " Like ‘*“ & Me.ZoekOpAchternaam & ”*’"
End If
With CodeContextObject
DoCmd.ApplyFilter “”, tf
If (.RecordsetClone.RecordCount = 0) Then 'Geen records gevonden
MsgBox “Geen records aangetroffen”, vbOKOnly + vbExclamation, “Probleem”
DoCmd.ShowAllRecords 'toon alles
End If
End With
End Sub
Houd wel rekening met……, indien je een getal gebruikt zal de syntax van het filter zijn ( is de naam van het veld in de tabel. zoekpostcode is de naam van het onverbonden veld.)
DoCmd.ApplyFilter “”, "=" & Me.zoekpostcode
Zoek je naar tekst dan moet je het enkele aanhalingsteken niet vergeten
DoCmd.ApplyFilter “”, "=“ & ”'“ & Me.zoekstraatnaam &”'"
Verder….indien je een onverbonden combobox en of listbox aanmaakt dan zal je in de meeste gevallen naar een nummer moeten zoeken. In dit geval het ID. Is dit niet het geval dan vraag je de tekst op van de combo of listbox.
Indien je gebruikers de gelegenheid geeft om te filteren, geef ze dan ook de mogelijkheid om het filter op te heffen. Maak een knop en stuur het statement
DoCmd.ShowAllRecords aan
Private Sub CMDheffilterop_Click()
DoCmd.ShowAllRecords
End Sub
suc6