Als je een voorbeeldje aanpast, moet je de onderliggende code natuurlijk wel bestuderen om te zien wat je moet aanpassen voor je eigen situatie. Dat heb je ofwel niet gedaan, ofwel je snapt de code niet

Als we even naar één van de essentiële regels in de functie kijken, dan zie je waar je de fout in bent gegaan:
Code:
If Me("f" & i).Name <> n And Len(Me("f" & i)) > 0 Then
sFilterH = sFilterH & [B][COLOR=#0000FF]Me("f" & i).Tag [/COLOR][/B]& " LIKE " & sBegin & Me("f" & i) & "*" & Chr(34) & " " & sAndOr
End If
Filteren doe je altijd op een tabelveld of formulierveld. Omdat een filter daardoor nogal star is, kun je zonder slimme trucjes geen filter maken dat flexibel is, omdat je allerlei combinaties wilt kunnen filteren. En dat houdt zonder slimmigheidjes in dat je alle mogelijke combinaties moet gaan opbouwen, wat tot nogal veel (dubbele) code kan leiden. In dat geval zou je kunnen volstaan door de veldnaam waar je op wilt filteren op te nemen in de naam van het zoekveld. De keuzelijst voor Merk zou dan cboMerk kunnen heten, en die voor Prijs cboPrijs. Zoals gezegd: je krijgt dan nogal wat code.
Daarom is voor een slimme oplossing gekozen, waarbij het
veld wordt opgeslagen in een eigenschap van het filterobject (keuzelijst of tekstveld), en de zoekvelden zelf een gestandaardiseerde naam hebben, zoals c1, c2 en f1 en f2. In dit formulier is gekozen om de veldnaam op te slaan in de eigenschap <Extra Info>, die in het Engels Tag heet. In de filterfunctie wordt vervolgens die eigenschap Tag weer uitgelezen. En je raadt het probleem nu waarschijnlijk al: als in de Tag van de keuzelijst de naam van een niet-bestaand veld staat, dan doet het filter het niet. Dus: om het formulier werkend te krijgen, moet je de naam van de velden uit de detailsectie overbrengen naar de eigenschap <Extra info> van de bij het veld horende zoekveld. Dan doet hij het weer. Dus de Tag van het zoekveld f2 moet je veranderen van [DOCOnderwerp] naar [Verschil PK] om op dat veld te kunnen filteren. Let op dat de telling rechtsboven ook moet worden aangepast, want die telt ook op een verkeerd veld.