Let me give you an example of how I have a number of forms in my db set up (there may be better ways!).
On my Quote form I have a number of records produced by a number of different users. These records are identified by their UID numbers (autonumbers) and by a String Prefix that indicates the company division to whom the record belongs. I want to give the users a way to look up existing Quotes and display them on the form. I also want them to be able to Add new Quotes.
So I have an Unbound combo box (no RecordSource). It's Rowsource would look like this...
SELECT DISTINCTROW tblQuote.quote_no, [id_string] & [original_no] & ' (R-' & [ver_no] & ')' AS Expr1, [id_string] & [original_no] & ' (R-' & [ver_no] & ')' AS [New Code], tblQuote.ver_no FROM tblQuote ORDER BY tblQuote.original_no, tblQuote.ver_no, tblQuote.quote_no;
You can easily use the Query builder to make this string, starting it from the property page of the Combo box ( if you don't use the combo box wizard). The Wizard will also do this for you.
... Ignore the version number, it is not significant to this discussion. So the user will be able to scroll through the list of existing Quotes and select the Quote that they want to look up. In the AfterUpdate of the combo box, you can use the RecordsetClone object and Bookmark Property to navigate to the selected record...
Me.RecordsetClone.FindFirst "[quote_no] = " & Me![cboQuote]
Me.Bookmark = Me.RecordsetClone.Bookmark
As the bound column in the combo box holds the quote_no, this code will look up the record based on that value.
In order to allow the user to add new records, I simply hide the Combo box in the Current Event of the Form when Me.NewRecord = True.
I could send a breif example if you are still having trouble.
Chris