In a day of messing with the sample database and my own I answered many of my own questions.
The criteria code placed under GradeID for the RowSource query for rank calls the row that is queried in the Grade control on the form. It seems that the reason there are unbound and hidden columns in both RowSource queries for grade and rank is so that each of the controls have identical queries that include information needed in both RowSources, but are bound by and are displaying different columns from the query. I guess this makes sense because Rank control value is dependent the entry in the Grade control.
I'm still not sure what the ins and outs of the vb code, but I was able to alter it enough to fit my needs. I needed three controls filled instead of only one. The three fields I need to fill we Identifier, Context, and RSType. It was as easy as repeating the code for each field name.
Code:
Private Sub Characteristic_AfterUpdate()
Me.Identifier.Requery
Me.Identifier = Me.Identifier.ItemData(0)
Me.Context.Requery
Me.Context = Me.Context.ItemData(0)
Me.RSFType.Requery
Me.RSFType = Me.RSFType.ItemData(0)
End Sub
In my database I am not using LookupFields and it worked fine. I just needed to make sure that the RowSource query was pulling records from the same table. I had trouble pulling records from different tables in the query but I bet it could work.
I should also mention that if one wants to embed the form they will need to edit query criteria and include the parent form/forms, i.e. "[Forms]![Parentform]![embeddedform]![Grade]"
Great solution, thanks again!