Filtering is your solution.
My database does the same with a personell number. I enter (or scan) the number and automaticly the appropriate record is shown.
Code:
Private Sub YourUniqueNumberField_AfterUpdate()
FilterForm
End Sub
Code:
Private Sub FilterForm()
Dim strFilter As String
Dim blnFilter As Boolean
blnFilter = False
strFilter = " 1=1 "
If Me.YourUniqueNumberField <> "" Then
strFilter = strFilter + " and YourField_In_Database like '*" & YourUniqueNumberField & "*'"
blnFilter = True
End If
If blnFilter Then
Me.Filter = strFilter
Else
Me.Filter = "1=2"
End If
Me.FilterOn = True
End Sub
YourUniqueNumberField is the name of the field your searching with
YourField_In_Database is the name of the field in your table
Off course you can adjust the names to your situation.
I use this way of filtering for all my databases and it hasnt failed me once.
If you have a barcode scanner then you make sure your focus is on the search field, You scan the number from a barcode and the record pulls up. The only thing you need is a good barcode font and you have it up and running in a matter of minutes.
I use free 3 of 9 barcode font, As the name reveals, a free barcode font wich you can find online.
Let me know how it works for you
Oh, one more thing; Make sure your field (on your form and in your table) is TEXT format.