I would edit @Robert's code to be this:
With Forms!frmExample.RecordsetClone
FindFirst "[ExampleID] = " & Me!cboExample
If Not .NoMatch Then
If Me.Dirty Then Me.Dirty = False
Forms!frmExample.Bookmark = .Bookmark
End If
End With
I see absolutely no reason to initialize a recordset variable when that recordset already exists and can be easily worked with inside a WITH block.
Also, it's essential to save any edits before departing a record with bookmark navigation, because that forces all validation to happen explicitly, rather than implicitly in the record departure. Historically speaking, Jet bookmark navigation was prone to eating errors that occured in the implicitly invoked save. Presumably, along with the other bookmark bugs, that has been stamped out, but I just think it's better to save a dirty record explicitly rather than just assume everything is going to go swimmingly.
Rant:
The code for this operation that created by the wizards in recent versions of Access (before 2007, i.e., 2002 and 2003) is dreadful. It uses a declared recordset variable (as @Robert's code did), but doesn't clean it up after using it (i.e., setting it to Nothing). It also uses the form's Recordset.Clone, instead of the already existing .RecordsetClone (they are distinct objects). Last of all, instead of using .NoMatch, it uses "If Not rs.EOF", which just makes little sense. I've been told that the reason for this was so that it would work with forms that have ADO recordsets, but ADO recordsets don't have a .FindFirst method, so this is ludicrous. True, you could change just the .FindFirst to .Find and it would work, but it's just awful, awful code.