### Stap 1: Maak een Formulier
1. **Open je Access-database** en maak een nieuw formulier aan waarin je het zoekveld wilt hebben.
2. **Voeg een tekstvak toe** aan het formulier. Dit wordt je zoekveld. Noem dit `txtSearch`.
3. **Voeg een knop toe** naast het tekstvak. Deze knop zal de zoekactie activeren. Noem deze `btnSearch`.
4. **Voeg een subformulier toe** om de zoekresultaten weer te geven. Dit subformulier moet gebaseerd zijn op de tabel of query waarin je wilt zoeken. Noem dit `subfrmResults`.
### Stap 2: Schrijf VBA-code voor de Zoekactie
1. **Open het formulier in Ontwerpweergave** en open de VBA-editor door te klikken op `Ontwerp` > `Code`.
2. **Voeg de volgende VBA-code toe** aan de module van het formulier:
```vba
Private Sub btnSearch_Click()
Dim strSearch As String
Dim strFilter As String
' Verkrijg de zoekterm uit het tekstvak
strSearch = Me.txtSearch.Value
' Stel de filterstring samen voor het subformulier
strFilter = "FieldName LIKE '*" & strSearch & "*'"
' Pas het filter toe op het subformulier
Me.subfrmResults.Form.Filter = strFilter
Me.subfrmResults.Form.FilterOn = True
End Sub
```
Vervang `FieldName` door het werkelijke veld waarin je wilt zoeken in je tabel of query. Als je in meerdere velden wilt zoeken, kun je de `strFilter` string als volgt aanpassen:
```vba
strFilter = "(FieldName1 LIKE '*" & strSearch & "*' OR FieldName2 LIKE '*" & strSearch & "*' OR FieldName3 LIKE '*" & strSearch & "*')"
```
3. **Sla de VBA-code op** en sluit de VBA-editor.
### Stap 3: Test het Zoekveld
1. **Open het formulier** in Formulierweergave.
2. **Voer een zoekterm in** in het `txtSearch` tekstvak.
3. **Klik op de `btnSearch` knop**. Het subformulier moet nu bijgewerkt worden om alleen de records weer te geven die aan de zoekcriteria voldoen.
### Aanvullende Tips
- Als je de zoekactie wilt resetten en alle records wilt weergeven, kun je een andere knop toevoegen om het filter te wissen:
```vba
Private Sub btnClearSearch_Click()
Me.txtSearch.Value = ""
Me.subfrmResults.Form.FilterOn = False
End Sub
```
- Om gevallen te behandelen waarin het zoekveld leeg is (om alle records weer te geven), kun je een voorwaarde toevoegen:
```vba
Private Sub btnSearch_Click()
Dim strSearch As String
Dim strFilter As String
' Verkrijg de zoekterm uit het tekstvak
strSearch = Me.txtSearch.Value
' Controleer of de zoekterm leeg is
If strSearch = "" Then
Me.subfrmResults.Form.FilterOn = False
Else
' Stel de filterstring samen voor het subformulier
strFilter = "FieldName LIKE '*" & strSearch & "*'"
' Pas het filter toe op het subformulier
Me.subfrmResults.Form.Filter = strFilter
Me.subfrmResults.Form.FilterOn = True
End If
End Sub
```
Door deze stappen te volgen, heb je een functioneel zoekveld in je Access-formulier waarmee je in alle records in je database kunt zoeken.
-----------------------------
Ik heb deze uitleg voor je gevonden op het internet. Heb het verder niet getest op een goede werking.
Succes met je code.
Met vriendelijke groet,
Peter