The solution and sample provided by @Ratslinger is a good way to satisfy your requirement. The use of a Table to store the List Box selection is easier than using a Basic macro.
There is however a potential problem. If by accident or design the Company Name is repeated in the Table it will not work correctly. There is no constraint on duplicates in the NAME field in the COMPANIES Table. You may need to have duplicates if the same company has facilities in more than one Location.
I have attached a modified version here. SelectCompanyByFilterMod.odb. In this version I store the COMPANY ID in the FILTER Table. As this is the Primary Key it will have no duplicates. I have modified the List Box to have 2 fields, the linked field which is stored in the FILTER Table and the display field which shows in the List Box. The display field if just using the Company NAME would not allow you to determine which of the duplicates to select. In the display field you can show the details from more than one field by concatenating a number of fields. In my example I concatenate the Company NAME and LOCATION using:-
SELECT “NAME” || ’ - ’ || “LOCATION”, “COMPANYID” FROM “COMPANIES2”
Which shows in the List Box display the company NAME  - LOCATION.
There are some other modifications. All the modified versions have 2 appended to the name.
If you do not expect to have duplicate Company Names you can use the original method but you need to put a constraint on the NAME field in the COMPANIES Table to prevent duplicates.
I have used the concatenating method in the past when selecting a person from a Table containing details of persons. There would be duplicates of common surnames so I concatenated FirstName, Surname, and Location to provide an unique reference.