Zoekfunctie

Status
Niet open voor verdere reacties.

alberttaal

Gebruiker
Lid geworden
17 jul 2007
Berichten
6
Het is vast erg stom dat ik het niet kan. Ik heb een tabel gemaakt met daarin o.a. een kolom trefwoorden. ik wil nu graag een filter of iets dergelijks gebruiken die al reageert op een deel van de waarde uit de kolom trefwoorden.
bijvooreeld de trefwoorden zijn: "dier, aap, natuur" dan wil ik alle reccords met dier selecteren. hoe doe ik dit?
 
Zoeken

Je kunt ongeveer als volgt werken:

1. Maak een formulier dat je puur gebruikt om te zoeken.
2. Zet op dit formulier een textbox waarin de gebruiker zijn zoekterm kan typen
3. Onder een knop bij deze textbox zet je code die een SQL-statement opbouwt: een SELECT..... WHERE JouwVeldnaam LIKE DeInhoudVanJeTextbox
4. Deze SQL wordt de recordsource van een listbox. Als je dus op de knop klikt, vult de listbox zich met die records, die aan je gegeven criterium voldoen. Je hebt dan een goed overzicht van al deze records.
5. Naast de listbox zet je een knop die een volgend scherm opent, met alle detailgegevens van die specifieke record. Bij het openen van dit formulier vul je de where-argument met een verwijzing naar het ID-veld van de record die je hebt geselecteerd in je listbox.

De volledige uitwerking van dit formulier kun je vinden op www.accesspower.nl, kijk bij Gemak - Zoeken.

Succes,

NdT
 
@NdT Bedakt!
Je sugesties zien er goed uit en ik heb ze geprobeerd, helaas werken ze allen als er slechts een trefwoord is per cel: dus aap werkt wel maar als er staat aap noot werkt het zoekargument aap niet
ik heb de volgende codes geprobeerd:
Code:
Sub een()
strSQL = "SELECT * FROM [Vakantie]"
strSQL = strSQL & " WHERE [Trefwoorden] LIKE"
strSQL = strSQL & "* And [Formulier1.Tekst0] And *"
End Sub
en
Code:
Sub een()
strSQL = "SELECT * FROM [Vakantie]"
strSQL = strSQL & " WHERE [Trefwoorden] LIKE"
strSQL = strSQL & "*[Formulier1.Tekst0]*"
End Sub
en
Code:
Sub een()
strSQL = "SELECT * FROM [Vakantie]"
strSQL = strSQL & " WHERE [Trefwoorden] LIKE"
strSQL = strSQL & "[Formulier1.Tekst0]"
End Sub
Heb ik mischien iets gemist?
 
Klopt, de zoekfunctie is alleen bedoeld voor het opzoeken van een enkel woord. Hij kijkt of de volledige string die je in de textbox staat, in een van de velden van de tabel voorkomt. Je kunt de functie misschien wel uitbouwen, op de volgende manier (denk ik, zelf nooit gemaakt)
1. Splits de ingetypte zoekterm in de verschillende woorden - kijk waar een spatie voorkomt met de functie InStr, neem alles voor die spatie, en ga verder met alles wat er na de spatie stond;
2. Bouw de SQL verder uit met OR LIKE-functies, afhankelijk van de aantallen woorden waarin de zoekstring is gesplitst.

Als dit lastig wordt, kun je er misschien ook aan denken, meerdere textboxen op je zoekscherm te zetten; dan beperk je wel het aantal zoektermen dat de gebruiker kan ingeven.

Succes,

NdT
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan