You earlier made it clear that the form itself was bound to a record for which there exists a prime key. (Which is usually a good thing!) The question I have is how you set up the combo. There are three common combo-box setups.
1. The combo is bound, not necessarily directly based on the table driving the main form, but something that it references is also used on your form as a key field. I.e. there is at least potentially a relationship between the .RowSource of the combo and the .RecordSource of the main form. The combo uses some (Wizard-generated) code to select a record on that form and navigate to it. This would probably include some combo-box click event that diddles around with Me.RecordsetClone and some recordset operations.
2. The combo is bound, not necessarily having anything to do with any of the fields on the main form. This kind of combo merely makes the values chosen from the combo available to code in that form. I.e. the code behind the form will refer to Me.ComboX(Column 1) (or column 0) and will perform logic or math on it.
3. The combo is bound and the defining option stores the combo selection from the combo box DIRECTLY into a field on the form. That is, at least one column of the combo is directly bound to the underlying record regardless of the combo's .RowSource value.
If choice #3 was used, then whatever you do in the Form_Load event will make no difference because the Form_Current event will re-make the selection for you when the current record synchronizes with the form. Choices #1 and #2 don't have this behavior. For case #3, the prior contents of the combo have NO effect on what it displays after a _Current event. Unless, of course, you have code in the _Current event to make a change.
If you want to force the issue AND the form is only used ONCE (for a given record) and then closed, it would make sense to have code in the Form_Open routine to look at your OpenArgs property for the form in order to set a filter before you allow the code to step to the _Current event. Note also that if you are looking at a number, OpenArgs IS passed as a string. Therefore you might need (as suggested above by GaP42 above) to use either CInt(arglist(0)) or NUM( arglist(0) ) because you aren't passing a number.