ok, i dont think you want any of this code. Instead, the form's focus should be on the barcode box (tabindex = 0) so it starts in the barcode box.
scan barcode,
then do the other boxes get info FROM the barcode box? or does a user enter data into them?
either way, no event code is needed since the form doesnt know if the user finished entering data in all the boxes, so you need a FIND button to gather all the box info and then search.
Code:
sub btnFind_click()
'the query is built depending on the various filters the user picks...
If Not IsNull(cboState) Then sWhere = sWhere & " and [state]='" & cboState & "'"
If Not IsNull(txtName) Then sWhere = sWhere & " and [Name]='" & txtName & "'"
If Not IsNull(chkContact) Then sWhere = sWhere & " and [Contact]=" & chkContact.Value
'or LIKE '*' & txtBox & '*'
'remove 1st 'AND'
sWhere = Mid(sWhere, 4)
'then open the continuous form of all records using the filter:
docmd.openForm "frmList",,,sWhere
end sub