Zoeken in frm

Status
Niet open voor verdere reacties.

peetersthomas10

Gebruiker
Lid geworden
10 feb 2015
Berichten
10
Een goede morgen,

Ik ben momenteel bezig met mijn klantenbestand in een databank te plaatsen.

Ik heb nu een formulier gemaakt waarin ik hun gegevens kan zien en zou graag een zoekfunctie inbouwen.

Ik zou graag opzoeken op Naam, Stad en Land (afrolmenuutje) en dan een open veld maken waar ik info kan in typen? vervolgens op een knop "Search..." drukken en dat hij dan de records gaat zoeken.

Heb enige filmpjes gevonden op youtube maar krijg het niet in elkaar geknutseld...

iemand met ervaring hierin?

gegroet Thomas
 
vervolgens op een knop "Search..." drukken en dat hij dan de records gaat zoeken.
Dat laatste vind ik nogal gebruikersonvriendelijk, want filteren kun je net zo goed 'live' doen.
In de bijlage zitten wat voorbeelden die je wellicht kunt gebruiken.
 

Bijlagen

Okido, bedankt alvast!

live filteren wou ik ook eerst doen, maar het bestand gaat door meerdere mensen gebruikt worden en moet gebruiksvriendelijk zijn
 
Laatst bewerkt:
Dat laatste vind ik nogal gebruikersonvriendelijk, want filteren kun je net zo goed 'live' doen.
In de bijlage zitten wat voorbeelden die je wellicht kunt gebruiken.

heb even je frm bekeken, (VB2). die textfilter is inderdaad zeer handig, heb de cmdSearch bij mij gewist en ga er dat zoeken in een open veld van proberen te maken

krijg wel telkens een foutmeldign wanneer ik hem bij mijn database integreer, fout is op de Checkfilter sNaam, sWaarde?
 
Dat kan ik mij goed voorstellen als je niet alle aspecten overneemt. Als voorbeeldje het tweede tekstvak filter:
Code:
Private Sub txtFilter2_Change()
    sNaam = Screen.ActiveControl.Name
    sTag = Screen.ActiveControl.Tag
    sWaarde = Me(sNaam).Text
    CheckFilter sNaam, sWaarde
End Sub

Je had vast wel gezien dat het eigenlijke filter wordt gemaakt met de functie CheckFilter. Deze functie is universeel, en die kan dus alleen werken als er ofwel met vaste objecten wordt gewerkt, ofwel de zoekwaarden als parameter worden meegegeven. Jammer genoeg (zie ik nu :) ) doet de functie het een beetje halfslachtig, want in de code staat een aanroep met parameters, terwijl de functie deze niet gebruikt. De regel
Code:
    CheckFilter sNaam, sWaarde
Kan je dus ook zo gebruiken:
Code:
    CheckFilter
En om het compleet te maken, moet je ook het tekstvak weer de focus geven. Je krijgt dan:
Code:
Private Sub txtFilter2_Change()
    sNaam = Screen.ActiveControl.Name
    sTag = Screen.ActiveControl.Tag
    sWaarde = Me(sNaam).Text
    CheckFilter
    With Me(sNaam)
        .SetFocus
        .Value = sWaarde
        .SelStart = .SelLength
    End With
End Sub
Maar waar het bij jou fout gaat, is om de eigenschap Tag. De functie gebruikt die om te bepalen op welk veld er moet worden gefilterd. Je kunt namelijk best een niet-afhankelijk tekstveld op een formulier zetten, maar hoe weet het filter nu om welk database veld het gaat? Om dat probleem te ondervangen zet ik in de eigenschap <Extra info> de veldnaam. En die wordt in de functie dus uitgelezen.
Dat gebeurt ook in deze regel:
Code:
        sTag = Screen.ActiveControl.Tag
Je zult dus bij de verschillende filters die eigenschap moeten invullen met de veldnamen uit je tabel die gefilterd worden door de betreffende filterobjecten.
 
Je was me voor met een voorbeeldje :). Ik heb er een doorlopend formulier bijgezet, want daar zie je beter wat er gebeurt dan op een enkelvoudig formulier.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan