I'll decode what I wrote:
The Where clause of the combo can reference a hidden, unbound control:
Where SomeField = Forms!frmMain!txtHidden
The Combo has a RowSource property which can be a table or a query. To use a WHERE clause, you would need to create a query.
Controls on forms can be bound or unbound. Bound controls have a ControlSource that isconnected to a field in the Form/Report's RecordSource because they contain the name of one of the fields. Unbound controls either have no ControlSource or the ControlSource starts with "=" and is a "calculation". Since you are using the combo as a filter and are not saving the result, you would be using an unbound control - i.e. the ControlSource will be empty.
"SomeField" = the name of field you want to filter on.
"Forms!" = literal, "frmMain" = the name of your form, "!" = literal, "txtHidden" = the Name property of the hidden control that will hold the value selected by the combo.
Then the click event of the button can copy some value to the unbound control and requery the subform.
Me.txtHidden = "whatever"
Me.sfrm.Requery
Controls and Forms have Events. These are hooks where you can place code that will be executed when the Event happens. Your button control has a Click event. When you press the button, the Click event runs and that will cause your code to run.
"Me." = Literal - references the form's object model so that Access knows where the variable is defined. "Me." gives you intellisense so you can see what properties and Methods are available. " = " = the relational operator used to set a value. "'whatever'" = some text value enclosed in quotes.
We can go into the preferred option (using a combo rather than a bunch of buttons to provide a value) another time.