t. Is this module work only with 2 search or more (ID, name, phonenumber etc)? Thanks all.
It will work with every field that is text in the recordsource. If the recordsource is a query convert number and date fields if you want to search them. See listbox example in the FAYT database for a much larger listbox.
https://www.access-programmers.co.uk/forums/showpost.php?p=1663332&postcount=60
To convert a string to text in a query you would in design view do something like
strDateField:cstr([YourDateField]) strNumberField:cstr([YourNumberField])
If you want to use class modules you do not need to understand how they work, only how to use them. The class module is a "black box", you only need to understand the inputs and outputs. This module has a lot of features and configurations, so if you want to try to understand how it works, that may take some time. I use class modules so I can build the detailed code once and use it every time without any modification.
However, I believe there are some corruption issues with your database. I tried to fix your form using your approach and could not so I provided my solution. Some simple code would not compile. You may want to import into a new database or recreate your form. Worst case you will need to do a decompile. The issue is you call Refresh, which I would think is not even required because the requery should be sufficient. Refresh removes the space when saving. However, when I remove Refresh the filter is not shown. That is another reason I think there is some corruption on the form.
You may also want to look at the Allen Browne link. This is a cleaner approach than what you were trying if you prefer not to use Custom Classes.